home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / program / inter51c.zip / MEMORY.LST < prev    next >
File List  |  1996-07-28  |  82KB  |  2,139 lines

  1. MEMORY MAP            Release 51        Last change 7/28/96
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  3.  
  4. --------H-M00000000--------------------------
  5. MEM 0000h:0000h R - INTERRUPT VECTOR TABLE
  6. Size:    1024 BYTEs
  7. Note:    see also the main interrupt list
  8. --------b-M0000031D--------------------------
  9. MEM 0000h:031Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 47 HARD DISK PARMS
  10. Size:    16 BYTEs
  11. Note:    these fields are used if the AMI BIOS setup is set to use the top of
  12.       the interrupt table for the extended BIOS data area
  13. SeeAlso: MEM 0000h:032Dh,INT 41
  14. --------b-M0000032D--------------------------
  15. MEM 0000h:032Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 48 HARD DISK PARMS
  16. Size:    16 BYTEs
  17. Note:    these fields are used if the AMI BIOS setup is set to use the top of
  18.       the interrupt table for the extended BIOS data area
  19. SeeAlso: MEM 0000h:031Dh,INT 46
  20. --------B-M00000400--------------------------
  21. MEM 0000h:0400h - BIOS DATA AREA
  22. Size:    256 BYTEs
  23. Note:    see also the MEM 0040h:xxxxh entries
  24. ----------M00000500--------------------------
  25. MEM 0000h:0500h - DATA AREA
  26. Size:    256 BYTEs
  27. ----------M00000600--------------------------
  28. MEM 0000h:0600h - MS-DOS 1.x LOAD ADDRESS
  29. ----------M00000700--------------------------
  30. MEM 0000h:0700h - MS-DOS 2+ LOAD ADDRESS
  31. ----------M00400000--------------------------
  32. MEM 0040h:0000h - BASE I/O ADDRESS OF FIRST SERIAL I/O PORT
  33. Size:    WORD
  34. Notes:    the BIOS sets this word to zero if is unable to find any serial ports
  35.       at the addresses it is programmed to check at boot
  36.     DOS and BIOS serial device numbers may be redefined by re-assigning
  37.       these values of the base I/O addresses stored here
  38. SeeAlso: MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:0008h
  39. SeeAlso: MEM 0040h:007Ch
  40. ----------M00400002--------------------------
  41. MEM 0040h:0002h - BASE I/O ADDRESS OF SECOND SERIAL I/O PORT
  42. Size:    WORD
  43. Note:    the BIOS sets this word to zero if is unable to find more than one
  44.       serial port at the addresses it is programmed to check at boot
  45. SeeAlso: MEM 0040h:0000h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:000Ah
  46. SeeAlso: MEM 0040h:007Dh
  47. ----------M00400004--------------------------
  48. MEM 0040h:0004h - BASE I/O ADDRESS OF THIRD SERIAL I/O PORT
  49. Size:    WORD
  50. Note:    the BIOS sets this word to zero if is unable to find more than two
  51.       serial ports at the addresses it is programmed to check at boot
  52. SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0006h,MEM 0040h:000Ch
  53. SeeAlso: MEM 0040h:007Eh
  54. ----------M00400006--------------------------
  55. MEM 0040h:0006h - BASE I/O ADDRESS OF FOURTH SERIAL I/O PORT
  56. Size:    WORD
  57. Note:    the BIOS sets this word to zero if is unable to find more than three
  58.       serial ports at the addresses it is programmed to check at boot
  59. SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0008h
  60. SeeAlso: MEM 0040h:007Fh
  61. ----------M00400008--------------------------
  62. MEM 0040h:0008h - BASE I/O ADDRESS OF FIRST PARALLEL I/O PORT
  63. Size:    WORD
  64. Notes:    the BIOS POST routine fills in the parallel port address fields in
  65.       turn as it finds parallel ports.  All fields beyond the last one
  66.       for which a valid parallel port was found are set to zero.
  67.     the BIOS INT 17 handler uses these fields to address the parallel
  68.       ports
  69. SeeAlso: MEM 0040h:0000h,MEM 0040h:000Ah,MEM 0040h:000Ch
  70. ----------M0040000A--------------------------
  71. MEM 0040h:000Ah - BASE I/O ADDRESS OF SECOND PARALLEL I/O PORT
  72. Size:    WORD
  73. Note:    zero if fewer than two parallel ports installed
  74. SeeAlso: MEM 0040h:0002h,MEM 0040h:0008h,MEM 0040h:000Ch
  75. ----------M0040000C--------------------------
  76. MEM 0040h:000Ch - BASE I/O ADDRESS OF THIRD PARALLEL I/O PORT
  77. Size:    WORD
  78. Note:    zero if fewer than three parallel ports installed
  79. SeeAlso: MEM 0040h:0004h,MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh
  80. ----------M0040000E--------------------------
  81. MEM 0040h:000Eh - BASE I/O ADDRESS OF FOURTH PARALLEL I/O PORT (pre-PS/2)
  82. Size:    WORD
  83. Note:    zero if fewer than four parallel ports installed
  84. SeeAlso: MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh"BIOS DATA"
  85. ----------M0040000E--------------------------
  86. MEM 0040h:000Eh - SEGMENT OF EXTENDED BIOS DATA SEGMENT (PS/2, newer BIOSes)
  87. Size:    WORD
  88. SeeAlso: MEM 0040h:000Eh"PARALLEL"
  89.  
  90. Format of Extended BIOS Data Area (IBM):
  91. Offset    Size    Description    (Table M001)
  92.  00h    BYTE    length of EBDA in kilobytes
  93.  01h 15 BYTEs    reserved
  94.  17h    BYTE    number of entries in POST error log (0-5)
  95.  18h  5 WORDs    POST error log (each word is a POST error number)
  96.  22h    DWORD    Pointing Device Driver entry point
  97.  26h    BYTE    Pointing Device Flags 1 (see #M002)
  98.  27h    BYTE    Pointing Device Flags 2 (see #M003)
  99.  28h  8 BYTEs    Pointing Device Auxiliary Device Data
  100.  30h    DWORD    Vector for INT 07h stored here during 80387 interrupt
  101.  34h    DWORD    Vector for INT 01h stored here during INT 07h emulation
  102.  38h    BYTE    Scratchpad for 80287/80387 interrupt code
  103.  39h    WORD    Timer3: Watchdog timer initial count
  104.  3Bh    BYTE    ??? seen non-zero on Model 30
  105.  3Ch    BYTE    ???
  106.  3Dh 16 BYTEs    Fixed Disk parameter table for drive 0 (for older machines
  107.           which don't directly support the installed drive)
  108.  4Dh 16 BYTEs    Fixed Disk parameter table for drive 1 (for older machines
  109.           which don't directly support the installed drive)
  110.  5Dh-67h    ???
  111.  68h    BYTE    cache control
  112.         bits 7-2 unused (0)
  113.         bit 1: CPU cache failed test
  114.         bit 0: CPU cache disabled
  115.  69h-6Bh    ???
  116.  6Ch    BYTE    Fixed disk: (=FFh on ESDI systems)
  117.             bits 7-4: Channel number 00-0Fh
  118.             bits 3-0: DMA arbitration level 00-0Eh
  119.  6Dh    BYTE    ???
  120.  6Eh    WORD    current typematic setting (see INT 16/AH=03h)
  121.  70h    BYTE    number of attached hard drives
  122.  71h    BYTE    hard disk 16-bit DMA channel
  123.  72h    BYTE    interrupt status for hard disk controller (1Fh on timeout)
  124.  73h    BYTE    hard disk operation flags
  125.         bit 7: controller issued operation-complete INT 76h
  126.         bit 6: controller has been reset
  127.         bits 5-0: unused (0)
  128.  74h    DWORD    old INT 76h vector
  129.  78h    BYTE    hard disk DMA type
  130.         typically 44h for reads and 4Ch for writes
  131.  79h    BYTE    status of last hard disk operation
  132.  7Ah    BYTE    hard disk timeout counter
  133.  7Bh-7Dh
  134.  7Eh  8 WORDs    storage for hard disk controller status
  135.  8Eh-E6h
  136.  E7h    BYTE    floppy drive type
  137.         bit 7: drive(s) present
  138.         bits 6-2: unused (0)
  139.         bit 1: drive 1 is 5.25" instead of 3.5"
  140.         bit 0: drive 0 is 5.25"
  141.  E8h  4 BYTEs    ???
  142.  ECh    BYTE    hard disk parameters flag
  143.         bit 7: parameters loaded into EBDA
  144.         bits 6-0: unused (0)
  145.  EDh    BYTE    ???
  146.  EEh    BYTE    CPU family ID (03h = 386, 04h = 486, etc.) (see INT 15/AH=C9h)
  147.  EFh    BYTE    CPU stepping (see INT 15/AH=C9h)
  148.  F0h 39 BYTEs    ???
  149. 117h    WORD    keyboard ID (see INT 16/AH=0Ah)
  150.         (most commonly 41ABh)
  151. 119h    BYTE    ???
  152. 11Ah    BYTE    non-BIOS INT 18h flag
  153.         bits 7-1: unused (0)
  154.         bit 0: set by BIOS before calling user INT 18h at offset 11Dh
  155. 11Bh  2 BYTE    ???
  156. 11Dh    DWORD    user INT 18h vector if BIOS has re-hooked INT 18h
  157. 121h and up:    ??? seen non-zero on Model 60
  158. 3F0h    BYTE    Fixed disk buffer (???)
  159. SeeAlso: #M004
  160.  
  161. Bitfields for Pointing Device Flags 1:
  162. Bit(s)    Description    (Table M002)
  163.  7    command in progress
  164.  6    resend byte (FAh) received
  165.  5    acknowledge byte (FEh) received
  166.  4    error byte (FCh) received
  167.  3    unexpected value received
  168.  2-0    index count for auxiliary device data at 28h
  169. SeeAlso: #M001,#M003
  170.  
  171. Bitfields for Pointing Device Flags 2:
  172. Bit(s)    Description    (Table M003)
  173.  7    device driver far call flag
  174.  6-3    reserved
  175.  2-0    package size (number of bytes received) - 1
  176. SeeAlso: #M001,#M002
  177.  
  178. Format of Extended BIOS Data Area (AMI v1.00.12.AX1T):
  179. Offset    Size    Description    (Table M004)
  180.  00h    BYTE    length of XBDA in kilobytes
  181.  01h 15 BYTEs    reserved
  182.  17h    BYTE    number of entries in POST error log (0-10)
  183.  18h 10 BYTEs    unused???
  184.  22h    DWORD    Pointing Device Driver entry point
  185.  26h    BYTE    Pointing Device Flags 1 (see #M002)
  186.  27h    BYTE    Pointing Device Flags 2 (see #M003)
  187.  28h  8 BYTEs    Pointing Device Auxiliary Device Data
  188.  30h 13 BYTEs    ???
  189.  3Dh 16 BYTEs    Fixed Disk parameter table for drive 0
  190.  4Dh 16 BYTEs    Fixed Disk parameter table for drive 1
  191.  5Dh 16 BYTEs    parameter table for drive 2???
  192.  6Dh 16 BYTEs    parameter table for drive 3???
  193.  80h 56 BYTEs?    IDE drive 0 manufacturer/model string
  194.  B8h 41 BYTEs    AMIBIOS copyright string
  195.  E1h        unused???
  196. 102h    WORD    ??? flags
  197.         bit 15: ???
  198. 108h    WORD    offset of IntelIDECfgTbl (IDE configuration settings) within
  199.           segment F000h
  200. 10Ah  2 BYTEs    ???
  201. 10Ch    DWORD    pointer to routine to call for language-specific error messages
  202. 110h    WORD    offset in segment F000h of end of currently-loaded optional
  203.           BIOS subsystems (language, APM, etc.)
  204. 112h    WORD    offset in segment F000h of end of area avaiable for loading
  205.           optional BIOS subsystems
  206. 1F0h    BYTE    APM status flags
  207. 1F1h  8 BYTEs    APM power-state data for device classes 01h-06h
  208.         bits 0-3: current power state for devices 00h-03h in class
  209.         bits 7-4: current engaged state for devices 00h-03h in class
  210. 1F9h  4 BYTEs    APM power-state data for device classes 01h-08h (four devices
  211.           per class)
  212. 1FDh  3 BYTEs    ???
  213. 200h 10 WORDs    POST error log
  214. 214h    ???
  215. SeeAlso: #M001
  216. ----------M00400010--------------------------
  217. MEM 0040h:0010h - INSTALLED HARDWARE
  218. Size:    WORD
  219.  
  220. Bitfields for BIOS-detected installed hardware:
  221. Bit(s)    Description    (Table M005)
  222.  15-14    number of parallel devices
  223.     00 or 11 sometimes used to indicate four LPT ports
  224.  13    (Convertible, PS/2-55LS) internal modem
  225.  12    game port installed
  226.  11-9    number of serial devices
  227.     000 or 111 sometimes used to indicate eight COM ports
  228.  8    reserved
  229.  7-6    number of floppy disk drives (minus 1)
  230.  5-4    initial video mode
  231.     00 EGA,VGA,PGA, or other with on-board video BIOS
  232.     01 40x25 CGA color
  233.     10 80x25 CGA color
  234.     11 80x25 mono text
  235.  3-2    (PC only) RAM on motherboard
  236.     00 = 16K, 01 = 32K, 10 = 48K, 11 = 64K
  237.  2    (pre-PS/2 except PC) reserved
  238.     (PS/2, newer BIOSes) pointing device installed
  239.  1    math coprocessor installed
  240.  0    floppy disk drives are installed
  241.     booted from floppy
  242. ----------M00400012--------------------------
  243. MEM 0040h:0012h - Convertible - POST STATUS
  244. Size:    BYTE
  245. ----------M00400012--------------------------
  246. MEM 0040h:0012h U - AT - MANUFACTURING TEST INITIALIZATION FLAGS
  247. Size:    BYTE
  248.  
  249. Bitfields for AT manufacturing test initialization flags:
  250. Bit(s)    Description    (Table M006)
  251.  0    start in manufacturing test mode rather than normal operation
  252.  1-7    unused
  253. ----------M00400012--------------------------
  254. MEM 0040h:0012h - MCA - MANUFACTURING TEST
  255. Size:    BYTE
  256.  
  257. Bitfields for MCA manufacturing test flags :
  258. Bit(s)    Description    (Table M007)
  259.  7    POST flag, ???
  260.  6-5    unused
  261.  4    POST flag, slot 4 has adapter identifier EDAFh
  262.  3    POST flag, 80x25 color video
  263.  2    POST flag, ???
  264.  1    unused
  265.  0    manufacturing test mode rather than normal operation
  266. ----------M00400012--------------------------
  267. MEM 0040h:0012h - PS/2 Model 25 - POST SYSTEM FLAG
  268. Size:    BYTE
  269.  
  270. Bitfields for PS/2 Model 25 POST sytem flag :
  271. Bit(s)    Description    (Table M008)
  272.  0    optional memory failed; memory remapped
  273.  1    real-time clock installed
  274. ----------M00400013--------------------------
  275. MEM 0040h:0013h - BASE MEMORY SIZE IN KBYTES
  276. Size:    WORD
  277. ----------M00400015--------------------------
  278. MEM 0040h:0015h - PC, XT - ADAPTER MEMORY SIZE IN KBYTES
  279. Size:    WORD
  280. ----------M00400015--------------------------
  281. MEM 0040h:0015h U - AT - MANUFACTURING TEST SCRATCH PAD
  282. Size:    BYTE
  283. ----------M00400015--------------------------
  284. MEM 0040h:0015h - Compaq Deskpro 386 - PREVIOUS SCAN CODE
  285. Size:    BYTE
  286. ----------M00400016--------------------------
  287. MEM 0040h:0016h U - AT - MANUFACTURING TEST SCRATCH PAD
  288. Size:    BYTE
  289. ----------M00400016--------------------------
  290. MEM 0040h:0016h U - PS/2 Model 30 - BIOS CONTROL FLAGS
  291. Size:    BYTE
  292. ----------M00400016--------------------------
  293. MEM 0040h:0016h - Compaq Deskpro 386 - KEYCLICK VOLUME
  294. Size:    BYTE
  295. Range:    00h-7Fh
  296. --------K-M00400017--------------------------
  297. MEM 0040h:0017h - KEYBOARD - STATUS FLAGS 1
  298. Size:    BYTE
  299. SeeAlso: MEM 0040h:0018h,INT 16/AH=01h
  300.  
  301. Bitfields for keyboard status flags 1:
  302. Bit(s)    Description    (Table M009)
  303.  7    INSert active
  304.  6    Caps Lock active
  305.  5    Num Lock active
  306.  4    Scroll Lock active
  307.  3    either Alt pressed
  308.  2    either Ctrl pressed
  309.  1    Left Shift pressed
  310.  0    Right Shift pressed
  311. SeeAlso: #M010
  312. --------K-M00400018--------------------------
  313. MEM 0040h:0018h - KEYBOARD - STATUS FLAGS 2
  314. Size:    BYTE
  315. SeeAlso: MEM 0040h:0017h,INT 16/AH=01h
  316.  
  317. Bitfields for keyboard status flags 2 :
  318. Bit(s)    Description    (Table M010)
  319.  7    INSert pressed
  320.  6    Caps Lock pressed
  321.  5    Num Lock pressed
  322.  4    Scroll Lock pressed
  323.  3    Pause state active
  324.  2    Sys Req pressed
  325.  1    Left Alt pressed
  326.  0    Left Ctrl pressed
  327. SeeAlso: #M009
  328. --------K-M00400019--------------------------
  329. MEM 0040h:0019h - KEYBOARD - ALT-nnn KEYPAD WORKSPACE
  330. Size:    BYTE
  331. Desc:    holds the current value of an Alt-NNN keypad sequence; when Alt is
  332.       released and this byte is non-zero, the appropriate character is
  333.       placed in the keyboard buffer
  334. SeeAlso: INT 16/AH=00h
  335. --------K-M0040001A--------------------------
  336. MEM 0040h:001Ah - KEYBOARD - POINTER TO NEXT CHARACTER IN KEYBOARD BUFFER
  337. Size:    WORD
  338. SeeAlso: MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  339. --------K-M0040001C--------------------------
  340. MEM 0040h:001Ch - KEYBOARD - POINTER TO FIRST FREE SLOT IN KEYBOARD BUFFER
  341. Size:    WORD
  342. SeeAlso: MEM 0040h:001Ah,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  343. --------K-M0040001E--------------------------
  344. MEM 0040h:001Eh - KEYBOARD - DEFAULT KEYBOARD CIRCULAR BUFFER
  345. Size:    16 WORDs
  346. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h
  347. SeeAlso: INT 16/AH=00h
  348. ----------M0040003E--------------------------
  349. MEM 0040h:003Eh - DISKETTE - RECALIBRATE STATUS
  350. Size:    BYTE
  351. SeeAlso: MEM 0040h:003Fh,MEM 0040h:0040h
  352.  
  353. Bitfields for diskette recalibrate status:
  354. Bit(s)    Description    (Table M011)
  355.  7    diskette hardware interrupt occurred
  356.  6-4    reserved
  357.  3    recalibrate diskette 3 (PC,XT only)
  358.  2    recalibrate diskette 2 (PC,XT only)
  359.  1    recalibrate diskette 1
  360.  0    recalibrate diskette 0
  361. ----------M0040003F--------------------------
  362. MEM 0040h:003Fh - DISKETTE - MOTOR STATUS
  363. Size:    BYTE
  364. SeeAlso: MEM 0040h:003Eh,MEM 0040h:0040h
  365.  
  366. Bitfields for diskette motor status:
  367. Bit(s)    Description    (Table M012)
  368.  7    current operation is write or format, rather than read or verify
  369.  6    reserved (DMA enabled on 82077)
  370.  5-4    diskette drive number selected (0-3)
  371.  3    diskette 3 motor on (PC,XT only)
  372.  2    diskette 2 motor on (PC,XT only)
  373.  1    diskette 1 motor on
  374.  0    diskette 0 motor on
  375. ----------M00400040--------------------------
  376. MEM 0040h:0040h - DISKETTE - MOTOR TURN-OFF TIMEOUT COUNT
  377. Size:    BYTE
  378. Desc:    number of clock ticks until diskette motor is turned off
  379. Note:    the typical implementation of the timeout is to have the INT 08 
  380.       handler decrement this byte on every clock tick, and force the
  381.       diskette motor off if the result is equal to zero
  382. SeeAlso: MEM 0040h:003Eh,MEM 0040h:003Fh,MEM 0040h:0041h
  383. ----------M00400041--------------------------
  384. MEM 0040h:0041h - DISKETTE - LAST OPERATION STATUS
  385. Size:    BYTE
  386. SeeAlso: MEM 0040h:003Eh
  387.  
  388. Bitfields for diskette last operation status:
  389. Bit(s)    Description    (Table M013)
  390.  7    drive not ready
  391.  6    seek error
  392.  5    general controller failure
  393.  4-0    error reason
  394.     00h no error
  395.     01h invalid request/parameter
  396.     02h address mark not found
  397.     03h write-protect error
  398.     04h sector not found
  399.     06h diskette change line active
  400.     08h DMA overrun
  401.     09h DMA across 64k boundary
  402.     0Ch media type unknown
  403.     10h CRC error on read
  404. Note:    the following values for this byte differ somewhat from the
  405.       bitfield definition above:
  406.         30h drive does not support media sense
  407.         31h no media in drive
  408.         32h drive does not support media type
  409.         AAh diskette drive not ready
  410. ----------M00400042--------------------------
  411. MEM 0040h:0042h - DISK - FLOPPY/HARD DRIVE STATUS/COMMAND BYTES
  412. Size:    7 BYTEs
  413.  
  414.     42h BYTE    XT: command byte to hard disk controller
  415.         AT: write precompensation cylinder number / 4
  416.     43h    BYTE    XT: bit 5 = drive number, bits 3-0=head number
  417.         AT: sector count
  418.     44h BYTE    XT: bits 6,7 = high bits of track, bits 5-0 = start sector-1
  419.         AT: starting sector
  420.     45h BYTE    low byte of track number
  421.     46h BYTE    XT: sector count
  422.         AT: high bits of track number
  423.     47h BYTE    XT: controlbyte from HD parameters (step rate,...)
  424.         AT: 101DHHHH, D=drive number, HHHH=head number
  425.     48h BYTE    XT: INT 13h subfunction number
  426.         AT: comand byte to hard disk controller
  427. ----------M00400042--------------------------
  428. MEM 0040h:0042h - DISK CONTROLLER STATUS REGISTER 0
  429. Size:    BYTE
  430.  
  431. Bitfields for diskette controller status register 0:
  432. Bit(s)    Description    (Table M014)
  433.  7-6    interrupt code
  434.     00 normal completion
  435.     01 abnormal termination during execution
  436.     10 invalid command
  437.     11 abnormal termination: ready line on/diskette change
  438.  5    requested seek complete
  439.  4    drive fault
  440.  3    drive not ready
  441.  2    head state at time of interrupt
  442.  1-0    selected drive (drives 2&3 on PC,XT only)
  443. ----------M00400043--------------------------
  444. MEM 0040h:0043h - DISK CONTROLLER STATUS REGISTER 1
  445. Size:    BYTE
  446.  
  447. Bitfields for diskette controller status register 0:
  448. Bit(s)    Description    (Table M015)
  449.  7    attempted access beyon last cylinder
  450.  6    unused
  451.  5    CRC error on read
  452.  4    DMA overrun
  453.  3    unused
  454.  2    data error
  455.  1    disk write protected
  456.  0    missing address mark
  457. ----------M00400044--------------------------
  458. MEM 0040h:0044h - DISK CONTROLLER STATUS REGISTER 2
  459. Size:    BYTE
  460.  
  461. Bitfields for diskette controller status register 0:
  462. Bit(s)    Description    (Table M016)
  463.  7    unused
  464.  6    found deleted data address mark
  465.  5    CRC error in data field
  466.  4    wrong cylinder number read
  467.  3    verify equal
  468.  2    can't find sector matching verify condition
  469.  1    bad cylinder
  470.  0    unable to find address mark
  471. ----------M00400049--------------------------
  472. MEM 0040h:0049h - VIDEO - CURRENT VIDEO MODE
  473. Size:    BYTE
  474. SeeAlso: MEM 0040h:004Ah,INT 10/AH=00h
  475. ----------M0040004A--------------------------
  476. MEM 0040h:004Ah - VIDEO - COLUMNS ON SCREEN
  477. Size:    WORD
  478. SeeAlso: MEM 0040h:0049h,MEM 0040h:004Ch,MEM 0040h:004Eh
  479. ----------M0040004C--------------------------
  480. MEM 0040h:004Ch - VIDEO - PAGE (REGEN BUFFER) SIZE IN BYTES
  481. Size:    WORD
  482. SeeAlso: MEM 0040h:004Ah,MEM 0040h:004Eh,MEM 0040h:0050h
  483. ----------M0040004E--------------------------
  484. MEM 0040h:004Eh - VIDEO - CURRENT PAGE START ADDRESS IN REGEN BUFFER
  485. Size:    WORD
  486. SeeAlso: MEM 0040h:004Ch,MEM 0040h:0050h,MEM 0040h:0062h
  487. ----------M00400050--------------------------
  488. MEM 0040h:0050h - VIDEO - CURSOR POSITIONS
  489. Size:    8 WORDs
  490. Desc:    contains row and column position for the cursors on each of eight
  491.       video pages
  492. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0060h
  493. ----------M00400060--------------------------
  494. MEM 0040h:0060h - VIDEO - CURSOR TYPE
  495. Size:    WORD    (big-endian)
  496. Desc:    contains cursor start scan line and cursor end scan line
  497. SeeAlso: MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=03h
  498. ----------M00400062--------------------------
  499. MEM 0040h:0062h - VIDEO - CURRENT PAGE NUMBER
  500. Size:    BYTE
  501. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0063h
  502. ----------M00400063--------------------------
  503. MEM 0040h:0063h - VIDEO - CRT CONTROLLER BASE I/O PORT ADDRESS
  504. Size:    WORD
  505. Note:    normally 03B4h for mono and 03D4h for color video boards
  506. SeeAlso: MEM 0040h:0065h,MEM 0040h:0066h
  507. ----------M00400065--------------------------
  508. MEM 0040h:0065h - VIDEO - CURRENT MODE SELECT REGISTER
  509. Size:    BYTE
  510. Desc:    contains last value written to I/O port 03B8h / 03D8h
  511. SeeAlso: MEM 0040h:0063h,MEM 0040h:0066h
  512.  
  513. Bitfields for current video mode select register:
  514. Bit(s)    Description    (Table M017)
  515.  7-6    unused
  516.  5    attribute bit 7 controls blinking instead of background
  517.  4    mode 6 graphics in monochrome
  518.  3    video signal enabled
  519.  2    monochrome
  520.  1    graphics
  521.  0    80x25 text
  522. ----------M00400066--------------------------
  523. MEM 0040h:0066h - VIDEO - CURRENT SETTING OF CGA PALETTE REGISTER
  524. Size:    BYTE
  525. Desc:    contains the last value written to I/O port 03D9h
  526. SeeAlso: MEM 0040h:0063h,MEM 0040h:0065h,INT 10h/AH=0Bh/BH=01h
  527.  
  528. Bitfields for CGA palette register:
  529. Bit(s)    Description    (Table M018)
  530.  7-6    unused
  531.  5    palette (0/1)
  532.  4    intense background colors in text mode
  533.  3    intense border color (40x25) / background color (mode 5)
  534.  2    red
  535.  1    green
  536.  0    blue
  537. ----------M00400067--------------------------
  538. MEM 0040h:0067h - PC only - CASSETTE TIME COUNT
  539. Size:    WORD
  540. SeeAlso: INT 15/AH=00h
  541. ----------M00400067--------------------------
  542. MEM 0040h:0067h - RESET RESTART ADDRESS
  543. Size:    DWORD
  544. Desc:    this address stores the address at which to resume execution after a
  545.       CPU reset (or jump to F000h:FFF0h) when certain magic values are
  546.       stored at 0040h:0072h or in CMOS RAM location 0Fh
  547. SeeAlso: MEM 0040h:0072h,MEM F000h:FFF0h,CMOS 0Fh,INT 19
  548. ----------M00400069--------------------------
  549. MEM 0040h:0069h    - CASSETTE (PC only) - CASSETTE CRC REGISTER
  550. Size:    WORD
  551. SeeAlso: MEM 0040h:006Bh"CASSETTE"
  552. ----------M00400069--------------------------
  553. MEM 0040h:0069h - V20-XT-BIOS - KEY REPEAT
  554. Size:    BYTE
  555.  
  556. Bitfields for V20-XT-BIOS key repeat flags:
  557. Bit(s)    Description    (Table M019)
  558.  7    key repeat disabled
  559.  6    Ctrl-Alt pressed instead of just Alt
  560. ----------M0040006B--------------------------
  561. MEM 0040h:006Bh - CASSETTE (PC only) - LAST VALUE READ FROM CASSETTE
  562. Size:    BYTE
  563. SeeAlso: MEM 0040h:0069h"CASSETTE"
  564. ----------M0040006B--------------------------
  565. MEM 0040h:006Bh - POST LAST UNEXPECTED INTERRUPT (XT and later)
  566. Size:    BYTE
  567. Desc:    this is a bitmask of IRQs which have occurred while the corresponding
  568.       interrupt vector points at the default system BIOS handler
  569.       (bit 0 = IRQ0 to bit 7 = IRQ7)
  570. ----------M0040006C--------------------------
  571. MEM 0040h:006Ch - TIMER TICKS SINCE MIDNIGHT
  572. Size:    DWORD
  573. SeeAlso: MEM 0040h:0070h,INT 1A/AH=00h
  574. ----------M00400070--------------------------
  575. MEM 0040h:0070h - TIMER OVERFLOW
  576. Size:    BYTE
  577. Desc:    non-zero if timer has counted past midnight since last call to
  578.       INT 1A/AH=00h
  579. Note:    the original IBM BIOS, and thus most other BIOSes, sets this byte to
  580.       01h at midnight; a few (such as the Eagle PC-2) increment it each
  581.       time midnight is passed.  The former behavior results in lost days
  582.       if multiple midnights pass between "get-time" calls while the machine
  583.       is powered up.
  584. SeeAlso: MEM 0040h:006Ch
  585. ----------M00400071--------------------------
  586. MEM 0040h:0071h - Ctrl-Break FLAG
  587. Size:    BYTE
  588. Desc:    bit 7 is set when Ctrl-Break has been pressed
  589. ----------M00400072--------------------------
  590. MEM 0040h:0072h - POST RESET FLAG
  591. Size:    WORD
  592. Desc:    specify the action the BIOS should take at the beginning of the
  593.       power-on self-test when the machine is reset
  594.  
  595. (Table M020)
  596. Values for POST reset flag:
  597.  0000h    cold boot
  598.  0064h    Burn-in mode
  599.  1234h    to bypass memory test (warm boot)
  600.  4321h    [PS/2 except Mod 25,30] to preserve memory
  601.  5678h    [Conv] system suspended
  602.  9ABCh    [Conv] manufacturing test mode
  603.  ABCDh    [Conv] POST loop mode
  604. ----------M00400074--------------------------
  605. MEM 0040h:0074h - FIXED DISK LAST OPERATION STATUS (except ESDI drives)
  606. Size:    BYTE
  607. SeeAlso: INT 13/AH=01h
  608.  
  609. (Table M021)
  610. Values for fixed disk last operation status:
  611.  00h    no error
  612.  01h    invalid function request
  613.  02h    address mark not found
  614.  03h    write protect error
  615.  04h    sector not found
  616.  05h    reset failed
  617.  06h    diskette removed
  618.  07h    drive parameter activity failed
  619.  08h    DMA overrun
  620.  09h    DMA data boundary error
  621.  0Ah    bad sector flag detected
  622.  0Bh    bad track detected
  623.  0Ch    requested diskette media type not found
  624.     (PS/2 or extended BIOS only) unsupported track
  625.  0Dh    invalid number of sectors for Format
  626.  0Eh    control data address mark detected
  627.  0Fh    DMA arbitration level out of range
  628.  10h    uncorrectable ECC or CRC error
  629.  11h    ECC corrected data error
  630.  20h    general controller failed
  631.  40h    seek failed
  632.  80h    time out
  633.  AAh    drive not ready
  634.  BBh    undefined error
  635.  CCh    write fault on selected drive
  636.  E0h    status error/error register is zero
  637.  FFh    sense failed
  638. ----------M00400074--------------------------
  639. MEM 0040h:0074h - WD1002-27X SuperBIOS - TOTAL DRIVES, FIRST CONTROLLER ONLY
  640. Size:    BYTE
  641. SeeAlso: MEM 0040h:0075h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  642. ----------M00400075--------------------------
  643. MEM 0040h:0075h - FIXED DISK - NUMBER OF FIXED DISK DRIVES
  644. Size:    BYTE
  645. SeeAlso: MEM 0040h:0076h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  646. ----------M00400075--------------------------
  647. MEM 0040h:0075h - WD1002-27X SuperBIOS - TOTAL FIXED DRIVES, BOTH CONTROLLERS
  648. Size:    BYTE
  649. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  650. ----------M00400076--------------------------
  651. MEM 0040h:0076h - FIXED DISK - CONTROL BYTE    {IBM document only for XT}
  652. Size:    BYTE
  653. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  654. ----------M00400076--------------------------
  655. MEM 0040h:0076h - XT: hard disk controller's I/O address (Western Digital)
  656. Size:    BYTE
  657. ----------M00400076--------------------------
  658. MEM 0040h:0076h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  659. Size:    BYTE
  660. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0075h"SuperBIOS"
  661. SeeAlso: MEM 0040h:0077h"SuperBIOS"
  662. ----------M00400077--------------------------
  663. MEM 0040h:0077h    - FIXED DISK - I/O port offset {IBM document only for XT}
  664. Size:    BYTE
  665. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0076h"FIXED DISK"
  666. ----------M00400077--------------------------
  667. MEM 0040h:0077h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  668. Size:    BYTE
  669. SeeAlso: MEM 0040h:0076h"SuperBIOS"
  670. ----------M00400078--------------------------
  671. MEM 0040h:0078h - PARALLEL DEVICE 1 TIME-OUT COUNTER
  672. Size:    BYTE
  673. SeeAlso: MEM 0040h:0079h,MEM 0040h:007Ah
  674. ----------M00400079--------------------------
  675. MEM 0040h:0079h - PARALLEL DEVICE 2 TIME-OUT COUNTER
  676. Size:    BYTE
  677. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah
  678. ----------M0040007A--------------------------
  679. MEM 0040h:007Ah - PARALLEL DEVICE 3 TIME-OUT COUNTER
  680. Size:    BYTE
  681. SeeAlso: MEM 0040h:0078h,MEM 0040h:0079h,MEM 0040h:007Bh"PARALLEL"
  682. ----------M0040007B--------------------------
  683. MEM 0040h:007Bh - PARALLEL DEVICE 4 TIME-OUT COUNTER (pre-PS, PS Models 25,30)
  684. Size:    BYTE
  685. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,MEM 0040h:007Bh"INT 4Bh"
  686. ----------M0040007B--------------------------
  687. MEM 0040h:007Bh - INT 4Bh FLAGS (PS2 and newer)
  688. Size:    BYTE
  689.  
  690. Bitfields for INT 4Bh flags:
  691. Bit(s)    Description    (Table M022)
  692.  7-6    reserved
  693.  5    set if Virtual DMA Spec supported [PS] (see INT 4B)
  694.  4    reserved
  695.  3    set if INT 4Bh intercepted and must be chained
  696.  2    reserved
  697.  1    set if Generic SCSI CBIOS services available on INT 4Bh
  698.  0    reserved
  699. ----------M0040007C--------------------------
  700. MEM 0040h:007Ch - SERIAL DEVICE 1 TIMEOUT COUNTER
  701. Size:    BYTE
  702. SeeAlso: MEM 0040h:0000h,MEM 0040h:007Dh,MEM 0040h:007Eh,MEM 0040h:007Fh
  703. ----------M0040007D--------------------------
  704. MEM 0040h:007Dh - SERIAL DEVICE 2 TIMEOUT COUNTER
  705. Size:    BYTE
  706. SeeAlso: MEM 0040h:0002h,MEM 0040h:007Ch,MEM 0040h:007Eh,MEM 0040h:007Fh
  707. ----------M0040007E--------------------------
  708. MEM 0040h:007Eh - SERIAL DEVICE 3 TIMEOUT COUNTER
  709. Size:    BYTE
  710. SeeAlso: MEM 0040h:0004h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Fh
  711. ----------M0040007F--------------------------
  712. MEM 0040h:007Fh - SERIAL DEVICE 4 TIMEOUT COUNTER
  713. Size:    BYTE
  714. SeeAlso: MEM 0040h:0006h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Eh
  715. ----------M00400080--------------------------
  716. MEM 0040h:0080h - KEYBOARD BUFFER START OFFSET FROM SEGMENT 40h (normally 1Eh)
  717. Size:    WORD
  718. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0082h
  719. ----------M00400082--------------------------
  720. MEM 0040h:0082h - KEYBOARD BUFFER END+1 OFFSET FROM SEGMENT 40h (normally 3Eh)
  721. Size:    WORD
  722. Note:    XT BIOS dated 11/08/82 ends here
  723. SeeAlso: MEM 0040h:001Ch,MEM 0040h:003Eh,MEM 0040h:0080h
  724. ----------M00400084--------------------------
  725. MEM 0040h:0084h - VIDEO (EGA/MCGA/VGA) - ROWS ON SCREEN MINUS ONE
  726. Size:    BYTE
  727. ----------M00400085--------------------------
  728. MEM 0040h:0085h - VIDEO (EGA/MCGA/VGA) - CHARACTER HEIGHT IN SCAN-LINES
  729. Size:    WORD
  730. ----------M00400087--------------------------
  731. MEM 0040h:0087h - VIDEO (EGA/VGA) CONTROL: [MCGA: =00h]
  732. Size:    BYTE
  733.  
  734. Bitfields for EGA/VGA Video control flags:
  735. Bit(s)    Description    (Table M023)
  736.  7    do not to clear RAM on mode set (see INT 10h, AH=00h)
  737.  6-5    RAM on adapter = (this field + 1) * 64K
  738.  4    reserved
  739.  3    EGA/VGA video system INactive
  740.  2    wait for display enable
  741.  1    mono monitor
  742.  0    alphanumeric cursor emulation DISabled
  743.     When enabled, text mode cursor size (INT 10,AH=01h) settings looking
  744.      like CGA ones are translated to equivalent EGA/VGA ones.
  745. ----------M00400088--------------------------
  746. MEM 0040h:0088h - VIDEO (EGA/VGA) SWITCHES: [MCGA: reserved]
  747. Size:    BYTE
  748. SeeAlso: MEM 0040h:0087h,MEM 0040h:0088h
  749.  
  750. Bitfields for EGA/VGA Video switches:
  751. Bit(s)    Description    (Table M024)
  752.  7-4    power-on state of feature connector bits 3-0
  753.  3-0    configuration switches 4-1 (=0 on, =1 off) (see #M025)
  754. Note:    when bit 4 of 0040h:0089h is 0, VGA emulates 350-line EGA if this
  755.       byte is x3h or x9h, otherwise emulates 200-line CGA in 400-line
  756.       double scan. VGA resets this byte to x9h after the mode set.
  757.     See also note for 0040h:0089h.
  758.  
  759. (Table M025)
  760. Values for EGA/VGA configuration switches:
  761.  00h Pri MDA,                Sec EGA+old color display 40 x 25
  762.  01h Pri MDA,                Sec EGA+old color display 80 x 25
  763.  02h Pri MDA,                Sec EGA+ECD normal mode (CGA emul)
  764.  03h Pri MDA,                Sec EGA+ECD enhanced mode
  765.  04h Pri CGA 40 x 25,            Sec EGA mono display
  766.  05h Pri CGA 80 x 25,            Sec EGA mono display
  767.  06h Pri EGA+old color display 40 x 25, Sec MDA
  768.  07h Pri EGA+old color display 80 x 25, Sec MDA
  769.  08h Pri EGA+ECD normal mode (CGA emul), Sec MDA
  770.  09h Pri EGA+ECD enhanced mode,        Sec MDA
  771.  0Ah Pri EGA mono display,        Sec CGA 40 x 25
  772.  0Bh Pri EGA mono display,        Sec CGA 80 x 25
  773. SeeAlso: #M024
  774. ----------M00400089--------------------------
  775. MEM 0040h:0089h U - VIDEO (MCGA/VGA) - MODE-SET OPTION CONTROL
  776. Size:    BYTE
  777.  
  778. Bitfields for Video mode-set option control:
  779. Bit(s)    Description    (Table M026)
  780.  7,4    requested scan lines
  781.     0 0  350-line mode requested
  782.     0 1  400-line mode at next mode set
  783.     1 0  200-line mode requested
  784.     1 1  reserved
  785.     Note:    Apparently VGA BIOS mode set disregards bit 7 and uses
  786.           byte 40h:88h to determine 200/350 selection when bit 4
  787.           is zero. Presumably bit 7 is a convenience for other
  788.           purposes. Bit 7 is reset to zero after the mode set.
  789.  6    display switching enabled
  790.  5    reserved
  791.  4    if set:      use 400-line mode at next mode set
  792.     if clear: [VGA] emulate EGA at next mode set
  793.         [MCGA] emulate CGA, digital monitor, 200 lines, 8x8 text
  794.     Note: this bit is set by the video mode set on VGA, unchanged on MCGA
  795.  3    default palette loading DISabled at mode set
  796.  2    mono display
  797.  1    gray scale summing enabled
  798.  0    [VGA] =1 if VGA active, =0 if not
  799.     [MCGA] reserved, zero
  800. Note:    the Tseng ET4000 BIOS v3.00 uses bits 6-4 of 88h and bits 6-5 of 89h
  801.       to specify graphics-mode refresh rates as follows
  802.         88h/6        640x480:  1 for 72Hz,0 for 60Hz
  803.         88h/5+89h/6    800x600:  00  60Hz
  804.                       01  56Hz
  805.                       11  72Hz
  806.         88h/4+89h/5    1024x768: 00  interlaced
  807.                       01  60Hz
  808.                       10  72Hz???
  809.                       11  70Hz
  810. ----------M0040008A--------------------------
  811. MEM 0040h:008Ah U - VIDEO (MCGA/VGA) - INDEX INTO DISPLAY COMBINATION CODE TBL
  812. Size:    BYTE
  813. ----------M0040008B--------------------------
  814. MEM 0040h:008Bh - PC, PCjr, PC/XT 11/8/82, Convertible - RESERVED
  815. Size:    11 BYTEs
  816. ----------M0040008B--------------------------
  817. MEM 0040h:008Bh - DISKETTE MEDIA CONTROL
  818. Size:    BYTE
  819.  
  820. Bitfields for diskette media control:
  821. Bit(s)    Description    (Table M027)
  822.  7-6    last data rate set by controller
  823.     00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  824.  5-4    last diskette drive step rate selected
  825.     00=0Ch, 01=0Dh, 10=0Eh, 11=0Ah
  826.  3-2    {data rate at start of operation}
  827.  1-0    reserved
  828. Note:    EHD BIOS sets this byte to 01h and never reads it back
  829. ----------M0040008C--------------------------
  830. MEM 0040h:008Ch - FIXED DISK - CONTROLLER STATUS [not XT]
  831. Size:    BYTE
  832. SeeAlso: MEM 0040h:008Dh,MEM 0040h:008Eh
  833. ----------M0040008D--------------------------
  834. MEM 0040h:008Dh - FIXED DISK - CONTROLLER ERROR STATUS [not XT]
  835. Size:    BYTE
  836. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Eh
  837. ----------M0040008E--------------------------
  838. MEM 0040h:008Eh - FIXED DISK - INTERRUPT CONTROL [not XT]
  839. Size:    BYTE
  840. Note:    cleared to 00h at start of disk operation, set to FFh by IRQ14
  841.       handler when hard disk controller completes command
  842. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Fh
  843. ----------M0040008F--------------------------
  844. MEM 0040h:008Fh U - DISKETTE CONTROLLER INFORMATION [not XT]
  845. Size:    BYTE
  846. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Eh
  847.  
  848. Bitfields for diskette controller information:
  849. Bit(s)    Description    (Table M028)
  850.  7    reserved
  851.  6    =1 drive 1 determined
  852.  5    =1 drive 1 is multi-rate, valid if drive determined
  853.  4    =1 drive 1 supports 80 tracks, always valid
  854.  3    reserved
  855.  2    =1 drive 0 determined
  856.  1    =1 drive 0 is multi-rate, valid if drive determined
  857.  0    =1 drive 0 supports 80 tracks, always valid
  858. Note:    EHD BIOS sets this byte to 01h and never alters it again
  859. ----------M00400090--------------------------
  860. MEM 0040h:0090h - DISKETTE DRIVE 0 MEDIA STATE
  861. Size:    BYTE
  862. SeeAlso: MEM 0040h:0091h
  863.  
  864. Bitfields for diskette drive media state:
  865. Bit(s)    Description    (Table M029)
  866.  7-6    data rate
  867.     00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  868.  5    double stepping required (e.g. 360kB in 1.2MB)
  869.  4    media type established
  870.  3    drive capable of supporting 4MB media
  871.  2-0    on exit from BIOS, contains
  872.     000 trying 360kB in 360kB
  873.     001 trying 360kB in 1.2MB
  874.     010 trying 1.2MB in 1.2MB
  875.     011 360kB in 360kB established
  876.     100 360kB in 1.2MB established
  877.     101 1.2MB in 1.2MB established
  878.     110 reserved
  879.     111 all other formats/drives
  880. SeeAlso: #M030,#M031
  881. ----------M00400091--------------------------
  882. MEM 0040h:0091h - DISKETTE DRIVE 1 MEDIA STATE
  883. Size:    BYTE
  884. SeeAlso: MEM 0040h:0090h,#M029
  885. ----------M00400092--------------------------
  886. MEM 0040h:0092h U - DISKETTE DRIVE 0 MEDIA STATE AT START OF OPERATION
  887. Size:    BYTE
  888. Note:    officially "Drive 2 media state"
  889. SeeAlso: MEM 0040h:0093h"DRIVE 1"
  890.  
  891. Bitfields for diskette drive 0 media state at start of operation:
  892. Bit(s)    Description    (Table M030)
  893.  7-3 (see #M029)
  894.  2    multiple data rate capability determined
  895.  1    multiple data rate capability
  896.  0    =1 if drive has 80 tracks, =0 if 40 tracks
  897. SeeAlso: #M029,#M031
  898. ----------M00400092--------------------------
  899. MEM 0040h:0092h - Olivetti Quaderno - HARD DISK POWERDOWN COUNTDOWN CLOCK TICKS
  900. Size:    BYTE
  901. Note:    hard disk is turned off when counter reaches zero
  902. ----------M00400093--------------------------
  903. MEM 0040h:0093h U - DISKETTE DRIVE 1 MEDIA STATE AT START OF OPERATION
  904. Size:    BYTE
  905. Note:    officially "Drive 3 media state"
  906. SeeAlso: MEM 0040h:0092h"DRIVE 0"
  907.  
  908. Bitfields for diskette drive 1 media state at start of operation:
  909. Bit(s)    Description    (Table M031)
  910.  7-3    (see #M029)
  911.  2    multiple data rate capability determined
  912.  1    multiple data rate capability
  913.  0    =1 if drive has 80 tracks, =0 if 40 tracks
  914. --HP 100LX/200LX--
  915.     display control status
  916.  0    =1 if DISPCTL -K
  917.  1    =1 if DISPCTL -C
  918. ----------M00400094--------------------------
  919. MEM 0040h:0094h - DISKETTE DRIVE 0 CURRENT TRACK NUMBER
  920. Size:    BYTE
  921. SeeAlso: MEM 0040h:0095h
  922. ----------M00400095--------------------------
  923. MEM 0040h:0095h - DISKETTE DRIVE 1 CURRENT TRACK NUMBER
  924. Size:    BYTE
  925. SeeAlso: MEM 0040h:0094h
  926. ----------M00400096--------------------------
  927. MEM 0040h:0096h - KEYBOARD STATUS BYTE 1
  928. Size:    BYTE
  929.  
  930. Bitfields for keyboard status byte 1:
  931. Bit(s)    Description    (Table M032)
  932.  7    =1 read-ID in progress
  933.  6    =1 last code read was first of two ID codes
  934.  5    =1 force Num Lock if read-ID and enhanced keyboard
  935.  4    =1 enhanced keyboard installed
  936.  3    =1 Right Alt pressed
  937.  2    =1 Right Ctrl pressed
  938.  1    =1 last code read was E0h
  939.  0    =1 last code read was E1h
  940. SeeAlso: #M033
  941. ----------M00400097--------------------------
  942. MEM 0040h:0097h - KEYBOARD STATUS BYTE 2
  943. Size:    BYTE
  944.  
  945. Bitfields for keyboard status byte 2:
  946. Bit(s)    Description    (Table M033)
  947.  7    =1 keyboard transmit error flag
  948.  6    =1 LED update in progress
  949.  5    =1 RESEND received from keyboard
  950.  4    =1 ACK received from keyboard
  951.  3    reserved, must be zero
  952.  2    Caps Lock LED
  953.  1    Num Lock LED
  954.  0    Scroll Lock LED
  955. SeeAlso: #M032
  956. ----------M00400098--------------------------
  957. MEM 0040h:0098h - TIMER2 (AT, PS exc Mod 30) - PTR TO USER WAIT-COMPLETE FLAG
  958. Size:    DWORD
  959. Note:    (see INT 15/AX=8300h)
  960. ----------M0040009C--------------------------
  961. MEM 0040h:009Ch - TIMER2 (AT, PS exc Mod 30) - USER WAIT COUNT IN MICROSECONDS
  962. Size:    DWORD
  963. ----------M0040009F--------------------------
  964. MEM 0040h:009Fh - HP 100LX/200LX - VIDEO ZOOM MODE
  965. Size:    BYTE
  966.  
  967. (Table M034)
  968. Values for HP 100LX/200LX video zoom mode:
  969.  02h    80x25 mono
  970.  03h    80x25 color
  971.  80h    64x18 mono
  972.  81h    64x18 color
  973.  82h    40x25 mono
  974.  83h    40x25 color
  975.  84h    40x16 mono
  976.  85h    40x16 color
  977. SeeAlso: INT 10/AH=D0h
  978. ----------M004000A0--------------------------
  979. MEM 0040h:00A0h - TIMER2 (AT, PS exc Mod 30) - WAIT ACTIVE FLAG
  980. Size:    BYTE
  981.  
  982. Bitfields for Timer2 wait active flag:
  983. Bit(s)    Description    (Table M035)
  984.  7    wait time elapsed
  985.  6-1    reserved
  986.  0    INT 15/AH=86h has occurred
  987. ----------M004000A1--------------------------
  988. MEM 0040h:00A1h - BIT 5 SET IF LAN SUPPORT PROGRAM INTERRUPT ARBITRATOR PRESENT
  989. Size:    BYTE
  990. Note:    DEVICE=DXMA0MOD.SYS
  991. ----------M004000A2--------------------------
  992. MEM 0040h:00A2h - RESERVED FOR NETWORK ADAPTERS
  993. Size:    6 BYTEs
  994. ----------M004000A4--------------------------
  995. MEM 0040h:00A4h - PS/2 Mod 30 - SAVED FIXED DISK INTERRUPT VECTOR 
  996. Size:    DWORD
  997. ----------M004000A8--------------------------
  998. MEM 0040h:00A8h - VIDEO (EGA/MCGA/VGA) - POINTER TO VIDEO SAVE POINTER TABLE
  999. Size:    DWORD
  1000.  
  1001. Format of Video Save Pointer Table [EGA/VGA/MCGA only]:
  1002. Offset    Size    Description    (Table M036)
  1003.  00h    DWORD    ptr to Video Parameter Table
  1004.  04h    DWORD    ptr to Parameter Dynamic Save Area, else 0 [EGA/VGA only]
  1005.  08h    DWORD    ptr to Alphanumeric Character Set Override, else 0
  1006.  0Ch    DWORD    ptr to Graphics Character Set Override, else 0
  1007.  10h    DWORD    [VGA only] ptr to Secondary Save Pointer Table, must be valid
  1008.  14h    DWORD    reserved, zero
  1009.  18h    DWORD    reserved, zero
  1010. Note: table initially in ROM, copy to RAM to alter, then update 40h:A8h.
  1011.  
  1012. Format of Secondary Video Save Pointer Table [VGA only]:
  1013. Offset    Size    Description    (Table M037)
  1014.  00h    WORD    Length of this table in bytes, including this word (1Ah)
  1015.  02h    DWORD    ptr to Display Combination Code Table, must be valid
  1016.  06h    DWORD    ptr to second Alphanumeric Character Set Override, else 0
  1017.  0Ah    DWORD    ptr to User Palette Profile Table, else 0
  1018.  0Eh    DWORD    reserved, zero
  1019.  12h    DWORD    reserved, zero
  1020.  16h    DWORD    reserved, zero
  1021. Note: table initially in ROM, copy to RAM to alter, then alter Save Ptr Table.
  1022.  
  1023. Format of Display Combination Code Table [VGA only]:
  1024. Offset    Size    Description    (Table M038)
  1025.  00h    BYTE    Number of entries in the DCC table at offset 04h
  1026.  01h    BYTE    Version number
  1027.  02h    BYTE    Maximum display type code that can appear in DCC table
  1028.  03h    BYTE    reserved
  1029.  04h 2N BYTEs    Each pair of bytes gives a valid display combination
  1030.         Meaning of each byte:
  1031.          00h     no display
  1032.          01h     MDA with mono display
  1033.          02h     CGA with color display
  1034.          03h     reserved
  1035.          04h     EGA with color display
  1036.          05h     EGA with mono display
  1037.          06h     Professional Graphics Controller
  1038.          07h     VGA with mono display
  1039.          08h     VGA with color display
  1040.          09h     reserved
  1041.          0Ah     MCGA with digital color display
  1042.          0Bh     MCGA with analog mono display
  1043.          0Ch     MCGA with analog color display
  1044.          FFh     unrecognised video system
  1045.  
  1046. Format of Video Parameter Table [EGA, VGA only]:
  1047. Offset    Size    Description    (Table M039)
  1048.  00h-03h    Modes 00h-03h in 200-line CGA emulation mode
  1049.  04h-0Eh    Modes 04h-0Eh
  1050.  0Fh-10h    Modes 0Fh-10h when only 64kB RAM on adapter
  1051.  11h-12h    Modes 0Fh-10h when >64kB RAM on adapter
  1052.  13h-16h    Modes 00h-03h in 350-line mode
  1053.  17h        VGA Modes 00h or 01h in 400-line mode
  1054.  18h        VGA Modes 02h or 03h in 400-line mode
  1055.  19h        VGA Mode  07h in 400-line mode
  1056.  1Ah-1Ch    VGA Modes 11h-13h
  1057. Note:    An array of 23 [EGA] or 29 [VGA] elements, each element being 64
  1058.       bytes long.  Elements appear in the above order.
  1059.  
  1060. Format of Video Parameter Table element [EGA, VGA only]:
  1061. Offset    Size    Description    (Table M040)
  1062.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  1063.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  1064.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  1065.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  1066.  05h  4 BYTEs    Values for Sequencer Registers 1-4
  1067.  09h    BYTE    Value for Miscellaneous Output Register
  1068.  0Ah 25 BYTEs    Values for CRTC Registers 00h-18h
  1069.  23h 20 BYTEs    Values for Attribute Controller Registers 00h-13h
  1070.  37h  9 BYTEs    Values for Graphics Controller Registers 00h-08h
  1071.  
  1072. Format of Video Parameter Table [MCGA only] {guesswork from inspection}:
  1073. Offset    Size    Description    (Table M041)
  1074.     - 16 triplet BYTEs of R,G,B DAC info for 16 colors;
  1075.     - An array of 11 elements, each element being 32 bytes long.
  1076.       Elements appear in the order:
  1077.         Modes 00h,01h in 200-line mode for digital displays
  1078.         Modes 00h,01h in 400-line mode for analog displays
  1079.         Modes 02h,03h in 200-line mode for digital displays
  1080.         Modes 02h,03h in 400-line mode for analog displays
  1081.         Modes 04h,05h in 200-line mode for digital displays
  1082.         Modes 04h,05h in 400-line mode for analog displays
  1083.         Mode  06h in 200-line mode for digital displays
  1084.         Mode  06h in 400-line mode for analog displays
  1085.         Mode  11h
  1086.         Mode  13h in 200-line mode for digital displays
  1087.         Mode  13h in 400-line mode for analog displays
  1088.  
  1089. Format of Video Parameter Table element [MCGA only]:
  1090. Offset    Size    Description    (Table M042)
  1091.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  1092.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  1093.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  1094.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  1095.  05h    WORD    ??? always zero
  1096.  07h 21 BYTEs    Video data registers 00h-14h to port 3D5h indexed by 3D4h
  1097.  1Ch    BYTE    PEL Mask to port 3C6h
  1098.  1Dh    BYTE    CGA Mode Control to port 3D8h
  1099.  1Eh    BYTE    CGA Border Control to port 3D9h
  1100.  1Fh    BYTE    Extended Mode Control to port 3DDh
  1101.  
  1102. Format of Video Parameter Dynamic Save Area [EGA, VGA only]:
  1103. Offset    Size    Description    (Table M043)
  1104.  00h 16 BYTEs    Last data written to Attribute Contr. Palette Registers 0-15
  1105.  10h    BYTE    Last data written to Attribute Controller Overscan Register
  1106.  11h-FFh    Reserved
  1107.         Note: Need for table was that EGA registers were write-only.
  1108.         Note: If default values (from the Video Parameter Table) are
  1109.               over-ridden at a mode set by the VGA User Palette Profile
  1110.               Table, then the Dynamic Save Area is updated with the
  1111.               default values, not the User Profile ones.
  1112.  
  1113. Format of Alphanumeric Character Set Override:
  1114. Offset    Size    Description    (Table M044)
  1115.  00h    BYTE    Length in bytes of each character in font table
  1116.  01h    BYTE    Character generator RAM bank to load, 0=normal
  1117.  02h    WORD    Number of characters in font table, normally 256
  1118.  04h    WORD    Code of first character in font table, normally 0
  1119.  06h    DWORD    ptr to font table
  1120.  0Ah    BYTE    Displayable rows (FFh=use maximum calculated value)
  1121.  0Bh    BYTEs    Array of mode values to which this font is to pertain
  1122.     BYTE    FFh end of array
  1123.  
  1124. Format of Second Alphanumeric Character Set Override:
  1125. Offset    Size    Description    (Table M045)
  1126.  00h    BYTE    Length in bytes of each character in font table
  1127.  01h    BYTE    Character generator RAM bank to load, normally non-zero
  1128.  02h    BYTE    reserved
  1129.  03h    DWORD    ptr to font table
  1130.  07h    BYTEs    Array of mode values to which this font is to pertain
  1131.     BYTE    FFh end of array
  1132. Note:    Authorities differ, some say same as first override above, but IBM
  1133.       says it is as shown above
  1134.  
  1135. Format of Graphics Character Set Override:
  1136. Offset    Size    Description    (Table M046)
  1137.  00h    BYTE    Number of displayable character rows
  1138.  01h    WORD    Length in bytes of each character in font table
  1139.  03h    DWORD    ptr to font table
  1140.  07h    BYTEs    Array of mode values to which this font is to pertain
  1141.     BYTE    FFh end of array
  1142.  
  1143. Format of User Palette Profile Table [VGA only]:
  1144. Offset    Size    Description    (Table M047)
  1145.  00h    BYTE    Underlining: 01h=enable in all alphanumeric modes
  1146.                  00h=enable in monochrome alphanumeric modes only
  1147.                  FFh=disable in all alphanumeric modes
  1148.  01h    BYTE    reserved
  1149.  02h    WORD    reserved
  1150.  04h    WORD    Number (0-17) of Attribute Controller registers in table
  1151.  06h    WORD    Index (0-16) of first Attribute Controller register in table
  1152.  08h    DWORD    ptr to table of Attribute Controller registers to override
  1153.             Table is an array of BYTEs.
  1154.  0Ch    WORD    Number (0-256) of video DAC Color registers in table
  1155.  0Eh    WORD    Index (0-255) of first video DAC Color register in table
  1156.  10h    DWORD    ptr to table of video DAC Color registers to override
  1157.             Table is ??? triplets ??? of BYTEs???
  1158.  14h    BYTEs    array of mode values to which this profile is to pertain
  1159.     BYTE    FFh end of array
  1160. ----------M004000AC--------------------------
  1161. MEM 0040h:00ACh - RESERVED
  1162. Size:    4 BYTEs
  1163. ----------M004000B0--------------------------
  1164. MEM 0040h:00B0h - Phoenix 386 BIOS 1.10 10a - LOOP COUNT FOR HARD DISK TIMEOUT
  1165. Size:    BYTE
  1166. Desc:    number of times a tight software delay loop should be executed to
  1167.       generate the sub-55ms delays used internally by the BIOS
  1168. Note:    also used for delaying when beeping due to full keyboard buffer
  1169. ----------M004000B0--------------------------
  1170. MEM 0040h:00B0h - PTR TO 3363 OPTICAL DISK DRIVER OR BIOS ENTRY POINT
  1171. Size:    DWORD
  1172. Notes:    When 3363 BIOS present, the ASCIZ signature "OPTIC "occurs 3 bytes
  1173.       beyond this entry point
  1174.     When 3363 BIOS and 3363 File System Driver present, the ASCIZ signature
  1175.       "FILE SYSTEM DRIVER" occurs 3 bytes beyond this entry point
  1176. ----------M004000B0--------------------------
  1177. MEM 0040h:00B0h    - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 48 HARD DISK
  1178. Size:    16 BYTEs
  1179. SeeAlso: INT 41,INT 46
  1180. ----------M004000B4--------------------------
  1181. MEM 0040h:00B4h    - RESERVED
  1182. Size:    WORD
  1183. ----------M004000B5--------------------------
  1184. MEM 0040h:00B5h    - Dell 4xxDE
  1185. Size:    BYTE
  1186.  
  1187. Bitfields for Dell 4xxDE flags:
  1188. Bit(s)    Description    (Table M048)
  1189.  2    ??? (related to disk drives)
  1190.  5    page tables set to allow Weitek addressing in real mode
  1191.  6    Weitek math coprocessor present
  1192. ----------M004000B6--------------------------
  1193. MEM 0040h:00B6h    - RESERVED FOR POST???
  1194. Size:    3 BYTEs
  1195. ----------M004000B9--------------------------
  1196. MEM 0040h:00B9h - ???
  1197. Size:    7 BYTEs
  1198. ----------M004000C0--------------------------
  1199. MEM 0040h:00C0h    - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 49 HARD DISK
  1200. Size:    16 BYTEs
  1201. SeeAlso: INT 41,INT 46
  1202. ----------M004000C0--------------------------
  1203. MEM 0040h:00C0h    - RESERVED
  1204. Size:    14 BYTEs
  1205. ----------M004000CE--------------------------
  1206. MEM 0040h:00CEh    - COUNT OF DAYS SINCE LAST BOOT
  1207. Size:    WORD
  1208. ----------M004000D0--------------------------
  1209. MEM 0040h:00D0h - RESERVED
  1210. Size:    32 BYTEs
  1211. ----------M004000D0--------------------------
  1212. MEM 0040h:00D0h    - Digiboard MV/4 - LENGTH OF DATA TABLE
  1213. Size:    BYTE
  1214. ----------M004000D0--------------------------
  1215. MEM 0040h:00D0h    EHD floppy - INSTALLATION FLAGS
  1216. Size:    BYTE
  1217.  
  1218. Bitfields for EHD floppy installation flags:
  1219. Bit(s)    Description    (Table M049)
  1220.  4    installation completed
  1221.  3-0    drives 0-3
  1222. ----------M004000D0--------------------------
  1223. MEM 0040h:00D0h    - AMI BIOS v1.00.12.AX1T - EPP - SCRATCH SPACE
  1224. Size:    WORD
  1225. Desc:    this word holds the value of BX during an EPP BIOS call
  1226. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
  1227. SeeAlso: MEM 0040h:00DDh"AMI"
  1228. ----------M004000D1--------------------------
  1229. MEM 0040h:00D1h    - Digiboard MV/4 - PRODUCT ID
  1230. Size:    BYTE
  1231. ----------M004000D2--------------------------
  1232. MEM 0040h:00D2h    - Digiboard MV/4 - BASE ADDRESS FOUND
  1233. Size:    WORD
  1234. ----------M004000D2--------------------------
  1235. MEM 0040h:00D2h    - AMI BIOS v1.00.12.AX1T - EPP BASE I/O PORT
  1236. Size:    WORD
  1237. ----------M004000D4--------------------------
  1238. MEM 0040h:00D4h    - Digiboard MV/4 - PORTS
  1239. Size:    BYTE
  1240. ----------M004000D5--------------------------
  1241. MEM 0040h:00D5h    - Digiboard MV/4 - IRQ
  1242. Size:    BYTE
  1243. ----------M004000D5--------------------------
  1244. MEM 0040h:00D5h    - EHD floppy - NUMBER OF FLOPPY DISK CONTROLLERS IN SYSTEM
  1245. Size:    BYTE
  1246. ----------M004000D5--------------------------
  1247. MEM 0040h:00D5h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 CAPABILITIES
  1248. Size:    BYTE
  1249. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
  1250. SeeAlso: MEM 0040h:00DCh"AMI"
  1251. ----------M004000D6--------------------------
  1252. MEM 0040h:00D6h    - EHD floppy - AND-BITS TO ADJUST PORT ADDRESS
  1253. Size:    BYTE
  1254. Note:    this byte contains FFh if controller at 03Fxh and 7Fh if at 037xh; the
  1255.       value is ANDed with DL prior to using IN A?,DX or OUT DX,A?
  1256.       instructions
  1257. ----------M004000D6--------------------------
  1258. MEM 0040h:00D6h - Digiboard MV/4 - NUMBER OF KEYBOARDS FOUND
  1259. Size:    WORD
  1260. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1261. ----------M004000D6--------------------------
  1262. MEM 0040h:00D6h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 IRQ
  1263. Size:    BYTE
  1264. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D8h"AMI"
  1265. SeeAlso: MEM 0040h:00DDh"AMI"
  1266. ----------M004000D7--------------------------
  1267. MEM 0040h:00D7h - EHD floppy - DRIVE 0 DISKETTE MEDIA STATE
  1268. Size:    BYTE
  1269. Note:    the value in this byte is copied into 0040h:0090h (diskette 0 status)
  1270. SeeAlso: MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1271.  
  1272. Bitfields for EHD diskette media state:
  1273. Bit(s)    Description    (Table M050)
  1274.  7-6    data rate: 00=500kbps,01=300kbps,10=250k,11=1M/S
  1275.  5    double stepping required (e.g. 360kB in 1.2MB)
  1276.  4    media type established
  1277.  3    reserved
  1278.  2-0    on exit from BIOS, contains:
  1279.     000 trying 360kB in 360kB
  1280.     001 trying 360kB in 1.2MB
  1281.     010 trying 1.2MB in 1.2MB
  1282.     011 360kB in 360kB established
  1283.     100 360kB in 1.2MB established
  1284.     101 1.2MB in 1.2MB established
  1285.     110 reserved (2M8?)
  1286.     111 all other formats/drives
  1287. ----------M004000D7--------------------------
  1288. MEM 0040h:00D7h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 CAPABILITIES
  1289. Size:    BYTE
  1290. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
  1291. SeeAlso: MEM 0040h:00DDh"AMI"
  1292. ----------M004000D8--------------------------
  1293. MEM 0040h:00D8h - Digiboard MV/4 - NUMBER OF MICE FOUND
  1294. Size:    WORD
  1295. SeeAlso: MEM 0040h:00D6h"Digiboard",MEM 0040h:00DAh"Digiboard"
  1296. ----------M004000D8--------------------------
  1297. MEM 0040h:00D8h - EHD floppy - DRIVE 1 DISKETTE MEDIA STATE
  1298. Size:    BYTE
  1299. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1300. ----------M004000D8--------------------------
  1301. MEM 0040h:00D8h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 IRQ
  1302. Size:    BYTE
  1303. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
  1304. SeeAlso: MEM 0040h:00DDh"AMI"
  1305. ----------M004000D9--------------------------
  1306. MEM 0040h:00D9h - EHD floppy - DRIVE 2 DISKETTE MEDIA STATE
  1307. Size:    BYTE
  1308. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00DAh"EHD"
  1309. ----------M004000DA--------------------------
  1310. MEM 0040h:00DAh - Digiboard MV/4 - CURRENT PORT (used by VGA initializatn only)
  1311. Size:    BYTE
  1312. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1313. ----------M004000DA--------------------------
  1314. MEM 0040h:00DAh - EHD floppy - DRIVE 3 DISKETTE MEDIA STATE
  1315. Size:    BYTE
  1316. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD"
  1317. ----------M004000DB--------------------------
  1318. MEM 0040h:00DBh - Digiboard MV/4 - MASTER 8259 MASK (used by VGA init only)
  1319. Size:    BYTE
  1320. SeeAlso: MEM 0040h:00DCh"Digiboard"
  1321. ----------M004000DB--------------------------
  1322. MEM 0040h:00DBh - EHD floppy - DRIVE 0 NEEDS RECALIBARATION
  1323. Size:    BYTE
  1324. SeeAlso: MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1325. ----------M004000DC--------------------------
  1326. MEM 0040h:00DCh - Digiboard MV/4 - SLAVE 8259 MASK (used by VGA init only)
  1327. Size:    BYTE
  1328. SeeAlso: MEM 0040h:00DBh"Digiboard"
  1329. ----------M004000DC--------------------------
  1330. MEM 0040h:00DCh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 MODE
  1331. Size:    BYTE
  1332. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00DDh"AMI"
  1333.  
  1334. (Table M051)
  1335. Values for AMI Enhanced Parallel Port mode:
  1336.  01h    compatibility mode
  1337.  02h    bi-directional mode
  1338.  04h    EPP mode
  1339. SeeAlso: #0530
  1340. ----------M004000DC--------------------------
  1341. MEM 0040h:00DCh - EHD floppy - DRIVE 1 NEEDS RECALIBARATION
  1342. Size:    BYTE
  1343. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1344. ----------M004000DC--------------------------
  1345. MEM 0040h:00DCh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 MODE
  1346. Size:    BYTE
  1347. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI",#M051
  1348. ----------M004000DD--------------------------
  1349. MEM 0040h:00DDh - EHD floppy - DRIVE 2 NEEDS RECALIBARATION
  1350. Size:    BYTE
  1351. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DEh"EHD"
  1352. ----------M004000DE--------------------------
  1353. MEM 0040h:00DEh - EHD floppy - DRIVE 3 NEEDS RECALIBARATION
  1354. Size:    BYTE
  1355. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD"
  1356. ----------M004000DF--------------------------
  1357. MEM 0040h:00DFh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT LOCK STATE
  1358. Size:    BYTE
  1359. Note:    set to 01h if last request was to lock a port, 00h if last request was
  1360.       to unlock a port
  1361. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI"
  1362. ----------M004000E0--------------------------
  1363. MEM 0040h:00E0h    - AMI BIOS v1.00.12.AX1T - EPP - REAL-TIME DEVICE COUNT
  1364. Size:    BYTE
  1365. Desc:    contains the number of advertised real-time devices as set by EPP
  1366.       function 12h (see #0525)
  1367. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DFh"AMI"
  1368. ----------M004000E0--------------------------
  1369. MEM 0040h:00E0h - Phoenix 386 BIOS - DRIVE PARAMETER TABLE FOR FIRST HARD DISK
  1370. Size:    16 BYTEs
  1371. Note:    this area is used to store the driver parameter table for the first
  1372.       hard disk if it has been setup as the user-configurable "type 47"
  1373. ----------M004000E3--------------------------
  1374. MEM 0040h:00E3h - EHD floppy - DRIVE 0 DISKETTE TYPE (from jumpers)
  1375. Size:    BYTE
  1376. SeeAlso: MEM 0040h:00E4h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1377.  
  1378. (Table M052)
  1379. Values for EHD floppy diskette type:
  1380.  01h    undefined by diskette change (360K)
  1381.  02h    1.2M
  1382.  03h    720K
  1383.  04h    1.44M
  1384.  05h    2.88M
  1385. ----------M004000E4--------------------------
  1386. MEM 0040h:00E4h - EHD floppy - DRIVE 1 DISKETTE TYPE (from jumpers)
  1387. Size:    BYTE
  1388. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1389. ----------M004000E5--------------------------
  1390. MEM 0040h:00E5h - EHD floppy - DRIVE 2 DISKETTE TYPE (from jumpers)
  1391. Size:    BYTE
  1392. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E6h"EHD"
  1393. ----------M004000E6--------------------------
  1394. MEM 0040h:00E6h - EHD floppy - DRIVE 3 DISKETTE TYPE (from jumpers)
  1395. Size:    BYTE
  1396. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E5h"EHD"
  1397. ----------M004000EA--------------------------
  1398. MEM 0040h:00EAh - Omti controller - SEGMENT OF EXTENDED BIOS DATA AREA???
  1399. Size:    WORD
  1400. Note:    drive parameter tables stored in specified segment
  1401. ----------M004000EC--------------------------
  1402. MEM 0040h:00ECh - Dell 4xxDE BIOS A11 - LOOP COUNT FOR DELAYS
  1403. Size:    WORD
  1404. ----------M004000F0--------------------------
  1405. MEM 0040h:00F0h - INTRA-APPLICATION COMMUNICATION AREA
  1406. Size:    16 BYTEs
  1407. ----------M00500000--------------------------
  1408. MEM 0050h:0000h - PRINT-SCREEN STATUS
  1409. Size:    BYTE
  1410. --------J-M00500001--------------------------
  1411. MEM 0050h:0001h - NEC PC-9800 series - SCREEN MODE
  1412. Size:    BYTE
  1413. Note:    if bit 3 set, the screen is in high-resolution mode (start memory at
  1414.       segment E000h instead of A000h)
  1415. ----------M00500004--------------------------
  1416. MEM 0050h:0004h - MS-DOS - LOGICAL DRIVE FOR SINGLE-FLOPPY SYSTEM (A: / B:)
  1417. Size:    BYTE
  1418. ----------M0050000E--------------------------
  1419. MEM 0050h:000Eh - STATE OF BREAK CHECKING AT START OF BASICA.COM EXECUTION
  1420. Size:    BYTE
  1421. ----------M0050000F--------------------------
  1422. MEM 0050h:000Fh - BASICA VERSION FLAG
  1423. Size:    BYTE
  1424. Note:    this byte contains the value 02h if BASICA v2.10 is running
  1425. ----------M00500010--------------------------
  1426. MEM 0050h:0010h - POINTER TO BASIC DATA SEGMENT
  1427. Size:    WORD
  1428. ----------M00500012--------------------------
  1429. MEM 0050h:0012h - INT 08 VECTOR AT START OF BASICA.COM EXECUTION
  1430. Size:    DWORD
  1431. ----------M00500016--------------------------
  1432. MEM 0050h:0016h - INT 1B VECTOR AT START OF BASICA.COM EXECUTION
  1433. Size:    DWORD
  1434. ----------M0050001A--------------------------
  1435. MEM 0050h:001Ah - INT 24 VECTOR AT START OF BASICA.COM EXECUTION
  1436. Size:    DWORD
  1437. ----------M00600000--------------------------
  1438. MEM 0060h:0000h - DOS SCRATCH SPACE
  1439. Size:    256 BYTEs
  1440. Note:    used during DOS 2+ boot process
  1441. ----------M00700000--------------------------
  1442. MEM 0070h:0000h - DOS 2+ IO.SYS LOAD ADDRESS
  1443. ----------m80C00000--------------------------
  1444. MEM 80C00000h - Compaq Deskpro 386 system memory board register
  1445. Size:    BYTE
  1446.  
  1447. 80C00000  R   Diagnostics register (see #M053)
  1448. 80C00000   W  RAM relocation register (see #M054)
  1449.  
  1450. Bitfields for Compaq Deskpro 386 diagnostics register:
  1451. Bit(s)    Description    (Table M053)
  1452.  7    =0 memory expansion board is installed
  1453.  6    =0 second 1 MB of system memory board is installed
  1454.  5-4    base memory
  1455.     00 set to 640 KB
  1456.     01 invalid
  1457.     10 set to 512 KB
  1458.     11 set to 256 KB
  1459.  3    parity correct in byte 3
  1460.  2    parity correct in byte 2
  1461.  1    parity correct in byte 1
  1462.  0    parity correct in byte 0 (in 32-bit double word)
  1463. SeeAlso: #M054
  1464.  
  1465. Bitfields for Compaq Deskpro 386 RAM relocation register:
  1466. Bit(s)    Description    (Table M054)
  1467.  7-2    reserved, always write 1's.
  1468.  1    =0  Write-protect 128-Kbyte RAM at FE0000.
  1469.     =1  Do not write-protect RAM at FE0000.
  1470.  0    =0  Relocate 128-Kbyte block at FE0000 to address 0E0000
  1471.     =1  128-Kbyte RAM is addressed only at FE0000.
  1472. SeeAlso: #M053
  1473. ----------MA0000000--------------------------
  1474. MEM A000h:0000h - EGA+ GRAPHICS BUFFER
  1475. Size:    65536 BYTEs
  1476. ----------MB0000000--------------------------
  1477. MEM B000h:0000h - MDA TEXT BUFFER
  1478. Size:    4096 BYTEs
  1479. ----------MB0000000--------------------------
  1480. MEM B000h:0000h - HGC+ RAMFont-MODE TEXT BUFFER
  1481. Size:    16384 BYTEs
  1482. Note:    in RAMFont Mode 1, the memory is filled with the usual
  1483.       character/attribute pairs; in RAMFont Mode 2, four bits of each
  1484.       'attribute' byte is used to provide 12 bits for specifying the
  1485.       character
  1486. ----------MB0000000--------------------------
  1487. MEM B000h:0000h - HGC GRAPHICS BUFFER (PAGE 0)
  1488. Size:    32768 BYTEs
  1489. ----------MB4000000--------------------------
  1490. MEM B400h:0000h - HGC+ RAMFont BUFFER
  1491. Size:    4096 BYTEs
  1492. Notes:    apparently write-only
  1493.     RAMFont Mode 1: 256 characters (8 bits each for char and attribute)
  1494.     RAMFont Mode 2: 3072 characters (12 bits for char, 4 bits for attrib)
  1495.     each character definition is 8 pixels wide (with 9th-column duplication
  1496.       if appropriate) by 8-16 pixels high
  1497. ----------MB8000000--------------------------
  1498. MEM B800h:0000h - CGA TEXT/GRAPHICS BUFFER
  1499. Size:    16384 BYTEs
  1500. --------V-MB8000000--------------------------
  1501. MEM B800h:0000h - EGA/VGA+ TEXT BUFFER
  1502. Size:    32768 BYTEs
  1503. --------V-MB8000000--------------------------
  1504. MEM B800h:0000h - HGC GRAPHICS BUFFER (PAGE 1)
  1505. Size:    32768 BYTEs
  1506. ----------MBFF00000--------------------------
  1507. MEM BFF0h:0000h - ET4000/W32 ACL accelerator
  1508. Size:    169 BYTES
  1509.  
  1510. Format of ET4000/W32 memory-mapped registers:
  1511. Offset    Size    Description    (Table M055)
  1512.  00h    DWORD    MMU Registers: memory base pointer register 0 (see #M056)
  1513.  04h    DWORD    MMU Registers: memory base pointer register 1 (see #M056)
  1514.  08h    DWORD    MMU Registers: memory base pointer register 2 (see #M056)
  1515.  0Ch  7 BYTEs    ???
  1516.  13h    BYTE    MMU Registers: MMU control register (see #M057)
  1517.  14h 28 BYTEs    ???
  1518.  30h    BYTE    Non-Queued Registers: suspend/terminate
  1519.  31h    BYTE    Non-Queued Registers: operation state (see #M058) (write-only)
  1520.  32h    BYTE    Non-Queued Registers: sync enable
  1521.  33h    BYTE    ???
  1522.  34h    BYTE    Non-Queued Registers: interrupt mask
  1523.  35h    BYTE    Non-Queued Registers: interrupt status
  1524.  36h    BYTE    Non-Queued Registers: ACL status (read-only)
  1525.         bit 1: read status (RDST) 1=ACL active, queue not empty
  1526.         bit 0: write status (WRST) 1=queue full
  1527.  37h 73 BYTEs    ???
  1528.  80h    DWORD    Queued Registers: pattern address (see #M059)
  1529.  84h    DWORD    Queued Registers: source address (see #M059)
  1530.  88h    WORD    Queued Registers: pattern Y offset (see #M060)
  1531.  8Ah    WORD    Queued Registers: source Y offset (see #M060)
  1532.  8Ch    WORD    Queued Registers: destination y offset (see #M060)
  1533.  8Eh    BYTE    Queued Registers: virtual bus size
  1534.  8Fh    BYTE    Queued Registers: X/Y direction (see #M061)
  1535.  90h    BYTE    Queued Registers: pattern wrap (see #M062)
  1536.  91h    BYTE    ???
  1537.  92h    BYTE    Queued Registers: source wrap (see #M062)
  1538.  93h    BYTE    ???
  1539.  94h    WORD    Queued Registers: X position
  1540.  96h    WORD    Queued Registers: Y position
  1541.  98h    WORD    Queued Registers: X count (see #M063)
  1542.  9Ah    WORD    Queued Registers: Y count (see #M063)
  1543.  9Ch    BYTE    Queued Registers: routine control (see #M064)
  1544.  9Dh    BYTE    Queued Registers: reload control
  1545.  9Eh    BYTE    Queued Registers: background ROP for mixing
  1546.  9Fh    BYTE    Queued Registers: foreground ROP for mixing
  1547.  A0h    DWORD    Queued Registers: destination address
  1548.  A4h    DWORD    Queued Registers: internal pattern address
  1549.  A8h    DWORD    Queued Registers: internal source address
  1550.  
  1551. Bitfields for ET4000/W32 memory base pointer register:
  1552. Bit(s)    Description    (Table M056)
  1553.  31-22    reserved
  1554.  21-0    memory base pointer
  1555. SeeAlso: #M055
  1556.  
  1557. Bitfields for ET4000/W32 MMU control register:
  1558. Bit(s)    Description    (Table M057)
  1559.  7    reserved
  1560.  6-4    linear address control (LAC)
  1561.       bit 6: MMU aperture 2
  1562.       bit 5: MMU aperture 1
  1563.       bit 4: MMU aperture 0
  1564.  3    reserved
  1565.  t2-0    aperture type (APT)
  1566.       bit 2: MMU aperture 2
  1567.       bit 1: MMU aperture 1
  1568.       bit 0: MMU aperture 0
  1569. SeeAlso: #M055 
  1570.  
  1571. Bitfields for ET4000/W32 operation state register:
  1572. Bit(s)    Description    (Table M058)
  1573.  7-4    reserved
  1574.  3    restart operation after ACL-interruption
  1575.  2-1    reserved
  1576.  0    restore status before ACL-interruption
  1577. SeeAlso: #M055
  1578.  
  1579. Bitfields for ET4000/W32 memory address register:
  1580. Bit(s)    Description    (Table M059)
  1581.  31-22    reserved
  1582.  21-0    memory base pointer
  1583. SeeAlso: #M055
  1584.  
  1585. Bitfields for ET4000/W32 offset register:
  1586. Bit(s)    Description    (Table M060)
  1587.  15-12    reserved
  1588.  11-0    Y offset
  1589. SeeAlso: #M055
  1590.  
  1591. Bitfields for ET4000/W32 X/Y direction register:
  1592. Bit(s)    Description    (Table M061)
  1593.  7-2    reserved
  1594.  1    X direction
  1595.  0    Y direction
  1596. SeeAlso: #M055
  1597.  
  1598. Bitfields for ET4000/W32 wrap register:
  1599. Bit(s)    Description    (Table M062)
  1600.  7    reserved
  1601.  6-4    pattern Y wrap
  1602.     000 = 1 line    
  1603.     001 = 2 lines    
  1604.     010 = 4 lines    
  1605.     011 = 8 lines    
  1606.     100 = reserved
  1607.     101 = reserved
  1608.     110 = reserved
  1609.     111 = no wrap 
  1610.  3    reserved
  1611.  2-0    pattern X wrap
  1612.     000 = reserved    
  1613.     001 = reserved    
  1614.     010 = 4 byte    
  1615.     011 = 8 byte    
  1616.     100 = 16 byte    
  1617.     101 = 32 byte    
  1618.     110 = 64 byte    
  1619.     111 = no wrap    
  1620. SeeAlso: #M055
  1621.  
  1622. Bitfields for ET4000/W32 count register:
  1623. Bit(s)    Description    (Table M063)
  1624.  15-12    reserved
  1625.  11-0    pixel count
  1626. SeeAlso: #M055
  1627.  
  1628. Bitfields for ET4000/W32 routine control register:
  1629. Bit(s)    Description    (Table M064)
  1630.  7-6    reserved               
  1631.  5-4    routing of CPU address (ADRO)       
  1632.     00 don't use CPU address       
  1633.     01 CPU address is destination    
  1634.     10 reserved               
  1635.     11 reserved               
  1636.  3    reserved               
  1637.  2-0    routing of CPU data (DARQ)       
  1638.     000 don't use CPU data       
  1639.     001 CPU data is source data       
  1640.     010 CPU data is mixed data       
  1641.     011 reserved               
  1642.     100 CPU data is x-count       
  1643.     101 CPU data is y-count       
  1644.     10x reserved            
  1645. SeeAlso: #M055 
  1646. ----------MC0000000--------------------------
  1647. MEM C000h:0000h - VIDEO BIOS (EGA and newer)
  1648. Size:    varies (usually 16K-24K for EGA, 24K-32K for VGA)
  1649. ----------mC0000000--------------------------
  1650. MEM C0000000h -    Weitek "Abacus" math coprocessor
  1651. Size:    4096 BYTEs
  1652. ----------MC8000000--------------------------
  1653. MEM C800h:0000h - HARD DISK BIOS
  1654. Size:    varies (usually 8K or 16K)
  1655. ----------MC8001C00--------------------------
  1656. MEM C800h:1C00h - IBM XGA, XGA/A - MEMORY-MAPPED REGISTERS
  1657. Range:    any 8K boundary within segments C000h to DFFFh
  1658. Notes:    The XGA memory mapped registers can be assigned to the last 1K block in
  1659.       in each 8K block in the range of C0000h-DFFFFh; the base offset of
  1660.       the 128 memory mapped lcoation for a particular XGA instance is
  1661.       Segment:(1C00h+instance*80h) for each XGA installed in a system
  1662.       (default instance is 6).  The instance number may be read from the
  1663.       XGA's Programmable Option Select registers
  1664.     The XGA/A (PS/2 adapter) uses the 7KB area below the memory-mapped
  1665.       register area for ROM data; the XGA (PS/2 onboard) has included
  1666.       this area in it's video BIOS ROM.
  1667.     Most of the memory mapped registers are from the graphics coprocessor,
  1668.       while the I/O-registers are for the display controller.
  1669. ----------MF0006000--------------------------
  1670. MEM F000h:6000h - IBM PC ROM BASIC
  1671. Size:    32768 BYTEs
  1672. --------B-MF000E000--------------------------
  1673. MEM F000h:E000h - ORIGINAL IBM PC ROM BIOS
  1674. Size:    8192 BYTEs
  1675. --------H-MF000FFF0--------------------------
  1676. MEM F000h:FFF0h - RESET JUMP
  1677. Size:    5 BYTEs
  1678. --------B-MF000FFF5--------------------------
  1679. MEM F000h:FFF5h - ASCII BIOS DATE
  1680. Size:    8 BYTEs
  1681. ----------MF000FFFD--------------------------
  1682. MEM F000h:FFFDh - OFTEN USED TO ENSURE CORRECT BIOS CHECKSUM
  1683. Size:    BYTE
  1684. --------B-MF000FFFE--------------------------
  1685. MEM F000h:FFFEh - MACHINE TYPE CODE
  1686. Size:    BYTE
  1687. SeeAlso: INT 15/AH=C0h
  1688. --------B-MF000xxxx--------------------------
  1689. MEM F000h:xxxxh - AWARD Flash Hook
  1690.  
  1691. Format of AWARD Flash BIOS interface:
  1692. Offset    Size    Description    (Table M065)
  1693.  00h  8 BYTEs    signature "AWDFLASH"
  1694.  08h    WORD    offset in F000h of FAR function: Get ???
  1695.         Return: BL = ??? (00h)
  1696.  0Ah    WORD    offset in F000h of FAR function: ???
  1697.  0Ch    WORD    offset in F000h of FAR function: ???
  1698.  0Eh    WORD    offset in F000h of FAR function: ???
  1699.  10h    WORD    offset in F000h of FAR function: ???
  1700.  12h    WORD    offset in F000h of FAR function: Disable Shadowing
  1701.  14h    WORD    offset in F000h of FAR function: Enable Shadowing
  1702.  16h    WORD    offset in F000h of FAR function: Get ???
  1703.         Return: DS:SI -> ??? (30 bytes?)
  1704.  18h    WORD    offset in F000h of FAR function: Set ???
  1705.         DS:SI -> ??? (appears to be same as previous function)
  1706. Note:    the AWDFLASH utility copies the ROM from F000h and uses the copy
  1707.       instead of the original F000h:xxxxh addresses
  1708. --------B-MF000xxxx--------------------------
  1709. MEM F000h:xxxxh - Asustek Flash Hook
  1710.  
  1711. Format of Asustek Flash interface:
  1712. Offset    Size    Description    (Table M066)
  1713.  00h 10 BYTEs    signature "ASUS_FLASH"
  1714.  0Ah  6 BYTEs    blanks (padding)
  1715.  10h    WORD    interface version??? (current PFLASH.EXE requires 0101h)
  1716.  12h    DWORD    -> position-independent code to enable shadowing
  1717.  16h    WORD    size of code pointed at by previous field (<= 0400h)
  1718.  18h    DWORD    -> position-independent code to disable shadowing
  1719.  1Ch    WORD    size of code pointed at by previous field (<= 0400h)
  1720. ----------Mxxxxxxx0--------------------------
  1721. MEM xxxxh:xxx0h - Multiprocessor Specification - FLOATING POINTER STRUCTURE
  1722. Range: any paragraph boundary in the first kilobyte of the XBDA, the last
  1723.     kilobyte of conventional memory, or from F000h:0000h to F000h:FFE0h
  1724. Note:    scan paragraph boundaries for the signature string "_MP_", followed
  1725.       by a valid floating pointer structure (see #M067)
  1726. SeeAlso: MEM FEE00000h
  1727.  
  1728. Format of Multiprocessor Specification Floating Pointer structure:
  1729. Offset    Size    Description    (Table M067)
  1730.  00h  4 BYTEs    signature "_MP_"
  1731.  04h    DWORD    physical address of MP configuration table (see #M068)
  1732.         00000000h if no configuration table
  1733.  08h    BYTE    length of this structure in paragraphs (currently 01h)
  1734.  09h    BYTE    revision of MP specification supported
  1735.         01h = v1.1
  1736.         04h = v1.4
  1737.  0Ah    BYTE    checksum (8-bit sum of entire structure, including this
  1738.           byte, must equal 00h)
  1739.  0Bh    BYTE    MP feature byte 1: system configuration type
  1740.         00h: MP configuration table present
  1741.         nonzero: default configuration implemented by system
  1742.  0Ch    BYTE    MP feature byte 2
  1743.         bit 7: IMCR present
  1744.         bits 6-0: reserved (0)
  1745.  0Dh  3    BYTEs    MP feature bytes 3-5 (reserved, must be 00h)
  1746.  
  1747. Format of Multiprocessor Specification configuration table header:
  1748. Offset    Size    Description    (Table M068)
  1749.  00h  4 BYTEs    signature "PCMP"
  1750.  04h    WORD    length of base configuration table in bytes, including
  1751.           this header
  1752.  06h    BYTE    revision of MP specification supported
  1753.         01h = v1.1
  1754.         04h = v1.4
  1755.  07h    BYTE    checksum of entire base configuration table
  1756.  08h  8 BYTEs    OEM identifier
  1757.  10h 12 BYTEs    product ID
  1758.  1Ch    DWORD    physical address to OEM-defined configuration table
  1759.         00000000h if not present
  1760.  20h    WORD    size of base OEM table in bytes (0000h if not present)
  1761.  22h    WORD    number of entries in variable portion of base table
  1762.  24h    DWORD    address of local APIC (see also MEM FEE0h:0020h)
  1763.  28h    WORD    length of extended entries following end of base table
  1764.           (in bytes)
  1765.  2Ah    BYTE    checksum for extended table entries (includes only
  1766.           extended entries following base table)
  1767.  2Ch    var    configuration table entries (see #M069)
  1768. SeeAlso: #M067
  1769.  
  1770. Format of Multiprocessor Specification configuration table entries:
  1771. Offset    Size    Description    (Table M069)
  1772.  00h    BYTE    entry type code
  1773.         00h processor
  1774.         01h bus
  1775.         02h I/O APIC
  1776.         03h I/IO interrupt assignment
  1777.         04h local interrupt assignment
  1778.         80h system address space mapping
  1779.         81h bus hierarchy descriptor
  1780.         82h compatibility bus address space modifier
  1781. ---processor---
  1782.  01h    BYTE    local APIC identifier
  1783.  02h    BYTE    local APIC version
  1784.  03h    BYTE    CPU flags
  1785.         bit 0: processor usable
  1786.         bit 1: bootstrap processor
  1787.  04h    WORD    CPU type
  1788.         bits 11-8: CPU family
  1789.         bits 7-4: CPU model
  1790.         bits 3-0: stepping
  1791.         (bits 11-0 all set indicate non-Intel-compatible CPU)
  1792.  06h  2 BYTEs    unused
  1793.  08h    DWORD    feature flags (as returned by Pentium CPUID instruction)
  1794.  0Ch  8 BYTEs    reserved
  1795. ---bus---
  1796.  01h    BYTE    bus ID (assigned sequentially from 00h by BIOS)
  1797.  02h  6 BYTEs    bus type (blank-padded ASCII string) (see #M070)
  1798. ---I/O APIC---
  1799.  01h    BYTE    APIC identifier
  1800.  02h    BYTE    APIC version
  1801.  03h    BYTE    I/O APIC flags
  1802.         bit 0: enabled
  1803.         bits 7-1: reserved
  1804.  04h    DWORD    base address for APIC
  1805. ---I/O,local interrupt assignment---
  1806.  01h    BYTE    interrupt type
  1807.         00h vectored interrupt (from APIC)
  1808.         01h NMI
  1809.         02h system management interrupt
  1810.         03h vectored interrupt (from external PIC)
  1811.  02h    BYTE    APIC control (see #M071)
  1812.  03h    BYTE    unused
  1813.  04h    BYTE    source bus identifier
  1814.  05h    BYTE    source bus IRQ
  1815.  06h    BYTE    destination I/O APIC identifier
  1816.  07h    BYTE    destination I/O APIC interrupt pin number
  1817. ---system address space mapping---
  1818.  01h    BYTE    entry length (14h)
  1819.  02h    BYTE    bus ID
  1820.  03h    BYTE    address type (00h I/O, 01h memory, 02h prefetch)
  1821.  04h    QWORD    starting address of region visible to bus
  1822.  0Ch    QWORD    length of region visible to bus
  1823. ---bus hierarchy descriptor---
  1824.  01h    BYTE    entry length (08h)
  1825.  02h    BYTE    bus ID
  1826.  03h    BYTE    bus information
  1827.         bit 0: subtractive decoding
  1828.  04h    BYTE    ID of parent bus
  1829.  05h  3 BYTEs    reserved
  1830. ---compatibility bus address space modifier---
  1831.  01h    BYTE    entry length (08h)
  1832.  02h    BYTE    bus ID
  1833.  03h    BYTE    address modifier
  1834.         bit 0: remove address ranges in predefined range list from
  1835.               bus's address space
  1836.  04h    DWORD    number indicating predefined address space range to be removed
  1837.         00h ISA-compatible I/O range (x100h-x3FFh and aliases)
  1838.         01h VGA-compatible I/O range (x3B0h-x3BBh,x3C0h-x3DFh,aliases)
  1839. SeeAlso: #M068
  1840.  
  1841. (Table M070)
  1842. Values for Multiprocessor Specification bus name:
  1843.  "CBUS"        Corollary CBus
  1844.  "CBUSII"    Corollary CBus II
  1845.  "EISA"
  1846.  "FUTURE"    IEEE FutureBus
  1847.  "INTERN"    internal bus
  1848.  "ISA"
  1849.  "MBI"        Multibus I
  1850.  "MBII"        Multibus II
  1851.  "MCA"        Microchannel
  1852.  "MPI"
  1853.  "MPSA"
  1854.  "NUBUS"    Apple Macintosh NuBus
  1855.  "PCI"
  1856.  "PCMCIA"
  1857.  "TC"        DEC TurboChannel
  1858.  "VL"        VESA Local Bus
  1859.  "VME"        VMEbus
  1860.  "XPRESS"    Express System Bus
  1861. SeeAlso: #M069
  1862.  
  1863. Bitfields for Multiprocessor Specification APIC control:
  1864. Bit(s)    Description    (Table M071)
  1865.  1-0    input signal polarity
  1866.     00 conforms to bus specification
  1867.     01 active high
  1868.     10 reserved
  1869.     11 active low
  1870.  3-2    trigger mode
  1871.     00 conforms to bus specification
  1872.     01 edge-triggered
  1873.     10 reserved
  1874.     11 level-triggered
  1875. SeeAlso: #M069
  1876. ----------mFEC00000--------------------------
  1877. MEM FEC00000h - Pentium - I/O APIC
  1878. Size:    4096 BYTEs
  1879. Range:    the Multiprocessor Specification calls for I/O APICs to be memory-
  1880.       mapped on 4K boundaries between FEC00000h and FEDFC000h
  1881. SeeAlso: MEM FEE00000h,MEM xxxxh:xxx0h"Multiprocessor"
  1882. ----------mFEE00000--------------------------
  1883. MEM FEE00000h - Pentium - LOCAL APIC
  1884. Size:    4096 BYTEs
  1885. Notes:    the Advanced Programmable Interrupt Controller built into
  1886.       multiprocessor-capable Pentiums (P54C, etc. -- basically 75MHz and
  1887.       faster Pentiums) maps its registers into the top of the physical
  1888.       address space on data reads and writes, but not on code reads;
  1889.       data accesses to the APIC registers do not cause external bus
  1890.       cycles
  1891.     the APIC's registers are only visible when the APIC is enabled (which
  1892.       occurs at CPU reset when external data lines contain proper signals)
  1893. SeeAlso: MEM FEC00000h,MEM FEE00020h,MEM xxxxh:xxx0h"Multiprocessor"
  1894. ----------mFEE00020--------------------------
  1895. MEM FEE00020h - Pentium - LOCAL APIC - LOCAL APIC ID REGISTER
  1896. SeeAlso: MEM FEE00030h
  1897. ----------mFEE00030--------------------------
  1898. MEM FEE00030h - Pentium - LOCAL APIC - LOCAL APIC VERSION REGISTER
  1899. Note:    read-only
  1900. SeeAlso: MEM FEE00020h
  1901. ----------mFEE00040--------------------------
  1902. MEM FEE00040h - Pentium - LOCAL APIC - RESERVED
  1903. SeeAlso: MEM FEE00000h
  1904. ----------mFEE00050--------------------------
  1905. MEM FEE00050h - Pentium - LOCAL APIC - RESERVED
  1906. SeeAlso: MEM FEE00000h
  1907. ----------mFEE00060--------------------------
  1908. MEM FEE00060h - Pentium - LOCAL APIC - RESERVED
  1909. SeeAlso: MEM FEE00000h
  1910. ----------mFEE00070--------------------------
  1911. MEM FEE00070h - Pentium - LOCAL APIC - RESERVED
  1912. SeeAlso: MEM FEE00000h
  1913. ----------mFEE00080--------------------------
  1914. MEM FEE00080h - Pentium - LOCAL APIC - TASK PRIORITY REGISTER (TPR)
  1915. ----------mFEE00090--------------------------
  1916. MEM FEE00090h - Pentium - LOCAL APIC - ARBITRATION PRIORITY REGISTER (APR)
  1917. Note:    read-only
  1918. ----------mFEE000A0--------------------------
  1919. MEM FEE000A0h - Pentium - LOCAL APIC - END OF INTERRUPT REGISTER (EOI)
  1920. Note:    write-only
  1921. ----------mFEE000A0--------------------------
  1922. MEM FEE000A0h - Pentium - LOCAL APIC - PROCESSOR PRIORITY REGISTER (PPR)
  1923. Note:    read-only
  1924. SeeAlso: MEM FEE00000h
  1925. ----------mFEE000B0--------------------------
  1926. MEM FEE000B0h - Pentium - LOCAL APIC - RESERVED
  1927. SeeAlso: MEM FEE00000h
  1928. ----------mFEE000C0--------------------------
  1929. MEM FEE000C0h - Pentium - LOCAL APIC - REMOTE READ REGISTER
  1930. Note:    read-only
  1931. ----------mFEE000D0--------------------------
  1932. MEM FEE000D0h - Pentium - LOCAL APIC - LOGICAL DURATION REGISTER (LDR)
  1933. SeeAlso: MEM FEE00000h
  1934. ----------mFEE000E0--------------------------
  1935. MEM FEE000E0h - Pentium - LOCAL APIC - DESTINATION FORMAT REGISTER (DFR)
  1936.     bits 27-0: read-only
  1937.     bits 31-28: read-write
  1938. ----------mFEE000F0--------------------------
  1939. MEM FEE000F0h - Pentium - LOCAL APIC - SPURIOUS INTERRUPT VECTOR REGISTER
  1940.     bits 3-0, read-only
  1941.     bits 9-4, read/write
  1942. ----------mFEE00100--------------------------
  1943. MEM FEE00100h - Pentium - LOCAL APIC - IN-SERVICE REGISTER (ISR)
  1944. Size:    128 BYTEs
  1945. Note:    read-only
  1946. SeeAlso: MEM FEE00200h
  1947. ----------mFEE00180--------------------------
  1948. MEM FEE00180h - Pentium - LOCAL APIC - TRIGGER MODE REGISTER (TMR)
  1949. Size:    128 BYTEs
  1950. Note:    read-only
  1951. SeeAlso: MEM FEE00000h
  1952. ----------mFEE00200--------------------------
  1953. MEM FEE00200h - Pentium - LOCAL APIC - INTERRUPT REQUEST REGISTER (IRR)
  1954. Size:    128 BYTEs
  1955. Note:    read-only
  1956. SeeAlso: MEM FEE00100h
  1957. ----------mFEE00280--------------------------
  1958. MEM FEE00280h - Pentium - LOCAL APIC - ERROR STATUS REGISTER
  1959. Size:    4 BYTEs
  1960. Note:    read-only
  1961.  
  1962. Bitfields for Pentium APIC error status register:
  1963. Bit(s)    Description    (Table M072)
  1964.  0    send checksum error
  1965.  1    receive checksum error
  1966.  2    send accept error
  1967.  3    receive accept error
  1968.  4    reserved
  1969.  5    send illegal vector
  1970.  6    receive illegal vector
  1971.  7    illegal register address
  1972.  31-8    reserved
  1973. ----------mFEE00300--------------------------
  1974. MEM FEE00300h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
  1975. Size:    4 BYTEs
  1976. Note:    this is the low half of the 64-bit ICR
  1977. SeeAlso: MEM FEE00310h,#M073
  1978.  
  1979. Bitfields for Pentium APIC Interrupt Command Register:
  1980. Bit(s)    Description    (Table M073)
  1981.  7-0    interrupt vector number
  1982.  10-8    delivery mode (see #M074)
  1983.  11    destination mode
  1984.  12    delivery status (read-only)
  1985.     1 = transfer pending
  1986.  13    reserved
  1987.  14    level (0 = INIT Level Deassert message, 1 = anything else)
  1988.  15    trigger mode (1)
  1989.  17-16    remote read status (read-only)
  1990.  19-18    destination shorthand
  1991.     00 as specified by destination field
  1992.     01 self
  1993.     10 all including self
  1994.     11 all except self
  1995.  55-20    reserved
  1996.  63-56    destination for interrupt request or message
  1997. SeeAlso: #M076
  1998.  
  1999. (Table M074)
  2000. Values for Pentium APIC delivery mode:
  2001.  000b    fixed
  2002.  001b    lowest-priority
  2003.  010b    SMI
  2004.  011b    remote read
  2005.  100b    NMI
  2006.  101b    INIT
  2007.  110b    start up
  2008.  111b    reserved
  2009. SeeAlso: #M073
  2010. ----------mFEE00310--------------------------
  2011. MEM FEE00310h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
  2012. Size:    4 BYTEs
  2013. Note:    this is the high half of the 64-bit ICR
  2014. SeeAlso: MEM FEE00300h,#M073
  2015. ----------mFEE00320--------------------------
  2016. MEM FEE00320h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 0 (TIMER)
  2017. Size:    4 BYTEs
  2018. SeeAlso: MEM FEE00350h,MEM FEE00370h,MEM FEE003E0h,INT 70h
  2019.  
  2020. Bitfields for Pentium APIC timer local vector entry:
  2021. Bit(s)    Description    (Table M075)
  2022.  7-0    interrupt vector number
  2023.  11-8    reserved
  2024.  12    delivery status (read-only)
  2025.     1 = interrupt being sent to APIC
  2026.  15-13    reserved
  2027.  16    interrupt delivery disabled
  2028.  17    timer mode (0=one-shot, 1=periodic)
  2029.  31-18    reserved
  2030. SeeAlso: #M077,#M076
  2031. ----------mFEE00330--------------------------
  2032. MEM FEE00330h - Pentium - LOCAL APIC - RESERVED
  2033. SeeAlso: MEM FEE00000h
  2034. ----------mFEE00340--------------------------
  2035. MEM FEE00340h - Pentium - LOCAL APIC - RESERVED
  2036. SeeAlso: MEM FEE00000h
  2037. ----------mFEE00350--------------------------
  2038. MEM FEE00350h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 1 (LINT0)
  2039. Size:    4 BYTEs
  2040. SeeAlso: MEM FEE00320h,MEM FEE00360h
  2041.  
  2042. Bitfields for Pentium APIC LINTx local vector entry:
  2043. Bit(s)    Description    (Table M076)
  2044.  7-0    interrupt vector number
  2045.  10-8    delivery mode
  2046.     000 fixed
  2047.     100 NMI
  2048.     111 external interrupt (8259A-compatibility)
  2049.  11    reserved
  2050.  12    delivery status (read-only)
  2051.     1 = interrupt being sent to APIC
  2052.  13    interrupt pin is active low
  2053.  14    remote IRR
  2054.  15    trigger mode
  2055.     0 edge-sensitive
  2056.     1 level-sensitive
  2057.  16    interrupt delivery disabled
  2058.  31-17    reserved
  2059. SeeAlso: #M075
  2060. ----------mFEE00360--------------------------
  2061. MEM FEE00360h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 2 (LINT1)
  2062. Size:    4 BYTEs
  2063. SeeAlso: MEM FEE00350h,MEM FEE00370h,#M076
  2064. ----------mFEE00370--------------------------
  2065. MEM FEE00370h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 3 (Error)
  2066. Size:    4 BYTEs
  2067. SeeAlso: MEM FEE00320h,MEM FEE00370h
  2068. ----------mFEE00380--------------------------
  2069. MEM FEE00380h - Pentium - LOCAL APIC - INITIAL COUNT REGISTER (ICR) TIMER
  2070. Desc:    timer start value, which together with the Divide Configuration
  2071.       Register also determines its period when periodic mode has been
  2072.       selected
  2073. SeeAlso: MEM FEE00000h,MEM FEE00390h
  2074. ----------mFEE00390--------------------------
  2075. MEM FEE00390h - Pentium - LOCAL APIC - CURRENT COUNT REGISTER (CCR) TIMER
  2076. Desc:    current timer count; when this value reaches zero, an interrupt is
  2077.       generated
  2078. Note:    read-only
  2079. SeeAlso: MEM FEE00380h
  2080. ----------mFEE003A0--------------------------
  2081. MEM FEE003A0h - Pentium - LOCAL APIC - RESERVED
  2082. SeeAlso: MEM FEE00000h
  2083. ----------mFEE003B0--------------------------
  2084. MEM FEE003B0h - Pentium - LOCAL APIC - RESERVED
  2085. SeeAlso: MEM FEE00000h
  2086. ----------mFEE003C0--------------------------
  2087. MEM FEE003C0h - Pentium - LOCAL APIC - RESERVED
  2088. SeeAlso: MEM FEE00000h
  2089. ----------mFEE003D0--------------------------
  2090. MEM FEE003D0h - Pentium - LOCAL APIC - RESERVED
  2091. SeeAlso: MEM FEE00000h
  2092. ----------mFEE003E0--------------------------
  2093. MEM FEE003E0h - Pentium - LOCAL APIC - TIMER DIVIDE CONFIGURATION REGISTER
  2094. SeeAlso: MEM FEE00000h,MEM FEE00320h
  2095.  
  2096. Bitfields for Pentium APIC timer divide configuration:
  2097. Bit(s)    Description    (Table M077)
  2098.  3,1,0    divisor
  2099.     000 divide by 2
  2100.     001 by 4
  2101.     010 by 8
  2102.     ...
  2103.     110 by 128
  2104.     111 by 1
  2105.  2    zero (0)
  2106.  31-4    reserved
  2107. Note:    the divisor determines the timer's time base relative to the processor
  2108.       clock
  2109. SeeAlso: #M075
  2110. ----------MFFFF0010--------------------------
  2111. MEM FFFFh:0010h - HIGH MEMORY AREA
  2112. Size:    65520 BYTEs
  2113. ---------------------------------------------
  2114.  
  2115. --------!---CONTRIBUTORS---------------------
  2116. Robin Walker    <rdhw@cus.cam.ac.uk> ORIGINAL FILE
  2117. Wim Osterholt    <wim@djo.wtm.tudelft.nl> or Wim Osterholt 2:512/56
  2118.     EHD floppy = 'KEGAN 4.0M Floppy Drive Controller.',
  2119.              'ACME FX4-K7tb2 v:2.5 11/5/91'
  2120. Stanley Appel    <appel@stack.urc.tue.nl>
  2121. Matthias Paul    <mpaul@ibh.rwth-aachen.de>
  2122. --------!---Admin----------------------------
  2123. Highest Table Number = M077
  2124. --------!---FILELIST-------------------------
  2125. Please redistribute all of the files comprising the interrupt list (listed at
  2126. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  2127. quartet of archives named INTER50A through INTER50D (preferably the original
  2128. authenticated PKZIP archives), and the utility programs in a two additional
  2129. archives called INTER50E.ZIP and INTER50F.ZIP
  2130.  
  2131. Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  2132. --------!---CONTACT_INFO---------------------
  2133. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  2134. UUCP: {uunet,harvard}!pobox.com!ralf
  2135. FIDO: Ralf Brown 1:129/26.1
  2136.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  2137.     unless you address it to me)
  2138. CIS:  >INTERNET:ralf@pobox.com
  2139.